home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr36 / mapl0301.zip / MBS20301.MRG < prev    next >
Text File  |  1993-04-13  |  95KB  |  2,415 lines

  1. * ------------[ BLED merge (c) Ken Goosens ]-------------
  2. * Merge this against E:\RBBS\STOCK\RBBSSUB2.BAS to produce E:\RBBS\CHAT\RBBSSUB2.BAS
  3. * E:\RBBS\STOCK\RBBSSUB2.BAS:  Date 6-20-1992  Size 140946 bytes
  4. * ------------[ Created 03-01-1993 19:14:30 ]------------
  5. * REPLACING old line(s) by new
  6. ' $linesize:132
  7. ' $title: 'RBBSSUB2.BAS 17.4, Copyright 1986 - 92 by D. Thomas Mack'
  8. '  Copyright 1991 by D. Thomas Mack, all rights reserved.
  9. '  Name ...............: RBBSSUB2.BAS
  10. '  First Released .....: June 21, 1992
  11. '  Subsequent Releases.: 
  12. '  Copyright ..........: 1986 - 1992
  13. '  Purpose.............: The Remote Bulletin Board System for the IBM PC,
  14. '     RBBS-PC.BAS utilizes a lot of common subroutines.  Those that do not
  15. '     require error trapping are incorporated within RBBSSUB 2-5 as
  16. '     separately callable subroutines in order to free up as much
  17. '     code as possible within the 64K code segment used by RBBS-PC.BAS.
  18. '  Parameters..........: Most parameters are passed via a COMMON statement.
  19. '
  20. ' Subroutine  Line               Function of Subroutine
  21. '   Name     Number
  22. '  Macro          1320  Check/execute macro
  23. '  AnswerIt        200  Answer the telephone when it rings
  24. '  ASCIICodes      129  Allow a CONFIG string to have any ASCII value
  25. '  BadChar         455  Check user name for invalid characters
  26. '  BadName       20235  Check for system crash attempt with bad file name
  27. '  BankTime       5500  Let caller change banked time
  28. '  CheckRatio    20096  Test upload/download ratio
  29. '  CheckMacro     1242  Checks for macro and processes
  30. '  CopyRight        97  Display RBBS-PC's copyright notice
  31. '  DEFALTU        9600  Write out the user's defaults
  32. '  DenyAccess     1386  Downgrade security so access denied
  33. '  DoorExit      10983  Set up a .BAT file to exit RBBS-PC to a "door"
  34. * ------[ first line different ]------
  35. '  DosExit       10934  Set up a .BAT file to exit to DOS (second level)
  36. '  EditALine      2618  Edits a single line
  37. '  EditDef         120  Edit configuration parameters
  38. '  FileNameCheck 20240  Matches file name to a prefix & extension
  39. '  GetArc        20140  Handle request for verbose listing
  40. '  GetCommand      101  Get RBBS-PC's node id from command line
  41. '  GetTime        9140  Calculates callers elapsed time (hh,mm,ss)
  42. '  GoIdle           90  Release resources when waiting for keyboard input
  43. '  KillMsg        3952  Delete old or unnecessary messages
  44. '  Line25          945  Build and/or update line 25 of RBBS-PC's local screen
  45. '  LineEdit       3700  Edit a line while minimizing string space consumption
  46. '  LogError      13660  Log error message to CALLERS file
  47. '  LPrnt          1480  Subroutine to write to local display
  48. '  MLInit            8  Removed in Maple code
  49. '  MsgProt        2055  Sets protection for a message
  50. '  ParseIt        1637  Parses a string
  51. '  PassWrd         660  Verify user & message passwords
  52. '  PopCmdStack    1650  Get user input, 1st checking command stack
  53. '  PScrn          1483  Print to display
  54. '  QuickLPrnt     1482  Quickly writes count of blocks on file transfer
  55. '  QuickTPut      1478  Fast, but limited, "TPut" equivalent
  56. '  QuickTPut1     1478  Outputs short string following by CR LF
  57. '  RBBSExit      10992  RBBS-PC exit to transfer control to other programs
  58. '  RecoverMsg    10410  Recover a deleted message
  59. '  RemNonAlf      5100  Removes non-alpha characters from a string
  60. '  RingCaller     1636  Ring caller's bell and put message in emphasis
  61. '  SetBaud        1654  Set baud rate in the 8250 chip of the RS232 interface
  62. '  SetCrLf        1496  Set up the necessary carriage return/line feed string
  63. '  SetSection    12000  Set the proper section prompts (main, file, util, libr)
  64. '  SetThread      4554  Set up request for threading thru messages
  65. '  SetWhoTo       2018  Sets who a message/personal upload is to
  66. '  SkipLine       1485  Write a # of blank lines to the communications port
  67. '  SearchCmd      1238  Searches list of commands in RBBS for a request
  68. '  SecViolation   1380  Process a security violation
  69. '  SysMenu         112  Displays sysop menu/status 'Moved to MenuPlus.bas Pe021493
  70. '  SysopChat      4773  Sysop and caller chat
  71. '  TestRel         336  Tests for Reliable connect
  72. '  TGet           1498  Read a line from the communications port
  73. '  TPut           1396  Write a line to the communications port
  74. '  Trim            105  Strip leading and trailing blanks from a string
  75. '  TrimTrail       107  Strip off specified string off end of another string
  76. '  UntilRight    12878  Ask a question until user says answer is right
  77. '  UpdateU       10600  Updates the user record on loging off/exiting RBBS-PC
  78. '  VarInit         109  Initialize system variables
  79. '  ViewHelp       1330  Processes help command
  80. '  WhoCheck       2250  Checks whether a user exists in user file
  81. '  WhosOn         9801  Report status of each node - who's on
  82. '  WordInFile    10976  Find a whole word within a file/menu
  83. '
  84. '  $INCLUDE: 'RBBS-VAR.BAS'
  85. '
  86. * DELETING old line(s)
  87. 10
  88. 20
  89. 30
  90. 60
  91. 70
  92. 80
  93. * REPLACING old line(s) by new
  94. 90 '  $SUBTITLE: 'GoIdle - release control when waiting'
  95. '  $PAGE
  96. '
  97. '  NAME    -- GoIdle
  98. '
  99. '  INPUTS  -- ZMLCom
  100. '             ZNetworkType
  101. '
  102. '  OUTPUTS --  NONE
  103. '
  104. '  PURPOSE --  To relinquish control when RBBS-PC is waiting for
  105. '              input from the communications port
  106. '
  107.       SUB GoIdle STATIC
  108. * ------[ first line different ]------
  109.    CALL GiveBack
  110.    END SUB
  111. * REPLACING old line(s) by new
  112. 97 '  $SUBTITLE: 'CopyRight - subroutine to display RBBS-PC copyright'
  113. '  $PAGE
  114. '
  115. '  NAME    -- CopyRight
  116. '
  117. '  INPUTS  --  NONE
  118. '
  119. '  OUTPUTS --  NONE
  120. '
  121. '  PURPOSE --  To display RBBS-PC's copyright notice on the local screen
  122. '
  123.       SUB CopyRight STATIC
  124.    ZWasA = (ZDebug OR ZExitToDoors OR ZCopyrightSecs < 1)
  125.    IF ZWasA THEN _
  126.       EXIT SUB
  127.    WIDTH 80
  128. * ------[ first line different ]------
  129.    CLS
  130.    KEY OFF
  131.    LOCATE ,,0
  132.    ZWasA = ZSnoop
  133.    ZSnoop = -1
  134.     CALL BufFile("COPYRITE.DEF",WasX)
  135. If Not ZOK Then 
  136.      Call GetRBBSString(267,RBBSString$)     'Pe 01/16/93
  137.      Call QuickTput1(RBBSString$)
  138.      Call Delaytime (35)
  139. End IF
  140.    CALL DelayTime (ZCopyrightSecs)
  141.    ZSnoop = ZWasA
  142.    END SUB
  143. * REPLACING old line(s) by new
  144. 101 ' $SUBTITLE: 'GetCommand - sub to get command from command line'
  145. ' $PAGE
  146. '
  147. '  NAME    -- GetCommand
  148. * ------[ first line different ]------
  149. '  INPUTS  --     PARAMETER                    MEANING
  150. '             ZConfigFileName$     NAME OF RBBS-PC ".DEF" FILE TO
  151. '                                  USE AS A MODEL WHEN CREATING THE
  152. '                                  .DEF FILE NAME TO BE USED BY THIS
  153. '                                  COPY OF RBBS-PC.
  154. '
  155. '             COMMAND LINE         COMMAND LINE USED TO INVOKE
  156. '                                  RBBS-PC IN THE FORM:
  157. '
  158. '       RBBS-PC.EXE x filename DEBUG /time /baud  /CBaud /reliable
  159. '
  160. '   WHERE THE OPTIONAL PARAMETERS ARE:
  161. '
  162. '  x       IS THE NODE ID IN THE RANGE 1-9,0,A-Z
  163. ' filename IS THE FULLY QUALIFIED FILE NAME TO USE AS THE ".DEF" FILE
  164. ' DEBUG    IS A DEBUGGING Switch
  165. ' /time    IS THE TIME OF DAY FOR RBBS-PC TO RETURN TO THE CALLER
  166. ' /baud    IS THE BAUD RATE OF THE CALLER IF RBBS-PC IS BEING SHELLED TO BY
  167. '             ANOTHER COMMUNICATIONS PROGRAM (THE COMMUNICATIONS PORT BEING
  168. '             USED IS ASSUMED TO BE THE ONE INPUTTED VIA THE RBBS-PC CONFIG
  169. '             PROGRAM
  170. ' /Cbaud   IS Actuall Connect rate of the Modems  ' Pe 01/01/93
  171. ' /reliable IS IF RELIABLE MODE WAS DETECTED BY A HOST MAILER
  172. '
  173. ' IF NO PARAMETERS ARE SUPPLIED, RBBS-PC ASSUMES THAT THE .DEF FILE NAME IS
  174. ' RBBS-PC.DEF AND THAT THE NODE IS NODE 1.
  175. '
  176. '  OUTPUTS -- ZConfigFileName$     NAME OF RBBS-PC ".DEF" FILE FOR
  177. '                                  THIS COPY OF RBBS-PC TO USE
  178. '             ZNodeRecIndex    RECORD NUMBER WITHIN THE
  179. '                                  MESSAGES FILE FOR THIS "NODE"
  180. '                                  (RANGE IS 2 TO 36)
  181. '
  182. '  PURPOSE --  To get node id from command line and determine if rbbs
  183. '              is being run as a door
  184. '
  185.   SUB GetCommand (PassedDebug,NetTime$,NetBaud$,ZCBaud$,NetReliable$) STATIC ' Pe 01/01/93
  186.       STATIC ZDebug
  187. '
  188. '
  189. ' *  GET NODE ID FROM COMMAND LINE
  190. '
  191. '
  192.       WasPM$ = COMMAND$
  193.       CALL AllCaps(WasPM$)
  194.       IF INSTR(WasPM$,"/") = 0 THEN _
  195.          GOTO 103
  196. '
  197. '
  198. ' * PARSE THE COMMAND LINE FOR THREE POSITIONAL SWITCHES FOR NET MAIL
  199. '
  200. '
  201.       CmdLine$ = MID$(WasPM$,INSTR(WasPM$,"/"))
  202.       WasPM$ = LEFT$(WasPM$,INSTR(WasPM$,"/") - 1)
  203.       ZWasA = 0
  204.       FOR WasX = 1 TO LEN(CmdLine$)
  205.           IF MID$(CmdLine$,WasX,1) = "/" THEN _
  206.              ZWasA = ZWasA + 1 : _
  207.              ZSubDir$(ZWasA) = "" _
  208.           ELSE ZSubDir$(ZWasA) = ZSubDir$(ZWasA) + MID$(CmdLine$,WasX,1)
  209.       NEXT
  210.       NetTime$ = ZSubDir$(1)
  211.       IF ZWasA > 1 THEN _
  212.          NetBaud$ = ZSubDir$(2)
  213.       IF ZWasA > 2 THEN _
  214.          ZCBaud$ = STR$(VAL(ZSubDir$(3)))       'Pe 031692
  215.       IF ZWasA > 3 THEN _
  216.          NetReliable$ = ZSubDir$(4)              'lk 022792
  217.       CALL Trim(NetTime$)
  218.       CALL Trim(NetBaud$)
  219.       CALL Trim (ZCBaud$)
  220.       CALL Trim(NetReliable$)
  221. * REPLACING old line(s) by new
  222. 109 '  $SUBTITLE: 'VarInit - subroutine to initialize system variables'
  223. '  $PAGE
  224. '
  225. '  NAME    --  VarInit
  226. '
  227. '  INPUTS  --  PARAMETER           MEANING
  228. '              NONE
  229. '
  230. '  OUTPUTS --  NONE
  231. '
  232. '  PURPOSE --  To initialize system variable
  233. '
  234.       SUB VarInit STATIC
  235.     DEF SEG                            ' Point to BASIC
  236.     WIDTH 80                           ' Set Screen Width
  237.     KEY OFF                            ' Line 25 turned off
  238. ' ********************* Variable Definitions *******************************
  239. * ------[ first line different ]------
  240. '    ZMsgDim = 99
  241. ZMsgDim = 199      'pe021893
  242.     WasMM = 999
  243.     WasBX = 75
  244.     WasJ = 60
  245.     REDIM ZOptSec(WasJ)
  246.     DIM ZWorkAra$(WasJ)
  247.     DIM ZGSRAra$(WasJ)
  248.     DIM ZCategoryName$(WasBX),ZCategoryCode$(WasBX),ZCategoryDesc$(WasBX)
  249.     DIM ZOutTxt$(ZMsgDim)                      ' Message line table
  250.     DIM ZUserIn$(ZMsgDim)                      ' Message line table
  251.     DIM ZMsgPtr(WasMM,2)                       ' Message pointers
  252.     ZAcknowledge$ = CHR$(6)
  253.     ZAckChar$ = "C" + _
  254.             ZAcknowledge$
  255. '    ZActiveMenu$ = "B"
  256.     ZActiveMenu$ = "|"           'ANSIed243
  257.     ZActiveMessage$ = CHR$(225)
  258.     ZBackSpace$ = CHR$(8) + _
  259.                  CHR$(32) + _
  260.                  CHR$(8)
  261.     ZBackArrow$ = CHR$(29) + _
  262.                   CHR$(32) + _
  263.                   CHR$(29)
  264.     ZBaudRates$ = "      300  450 1200 2400 4800 7200 96001200014400168001920038400"
  265.     ZBellRinger$ = CHR$(7)
  266.     ZBulletinMenu$ = ""
  267.     ZWasCL = 24
  268.     ZCancel$ = CHR$(24)
  269.     ZColorReset$ = CHR$(27) + _
  270.                    "[00;37;40m"
  271.     ZConfigFileName$ = "RBBS-PC.DEF"
  272.     ZCarriageReturn$ = CHR$(13)
  273.     ZDeletedMsg$ = CHR$(226)
  274.     ZEndTransmission$ = CHR$(4)
  275.     ZEscape$ = CHR$(27)
  276.     ZExpectActiveModem = 0
  277.     ZFalse = 0
  278.     ZF1Key = 59
  279.     ZF10Key = 68
  280.     ZConfName$ = "MAIN"
  281.     CALL SetHiLite (ZTrue)
  282.     ZHomeConf$ = ""
  283.     ZInConfMenu = -1
  284.     ZLastCommand$ = "M "
  285.     ZLimitMinsPerSession = 0
  286.     ZLineFeed$ = CHR$(10)
  287.     ZLineFeeds = NOT ZFalse
  288.     ZLineEditChk$ = CHR$(9) + _
  289.                     ZLineFeed$ + _
  290.                     CHR$(11) + _
  291.                     CHR$(12) + _
  292.                     CHR$(127) + _
  293.                     CHR$(8) + _
  294.                     ZBellRinger$ + _
  295.                     CHR$(26) + _
  296.                     CHR$(227)
  297.     ZLineMes$ = SPACE$(78)          ' fixed length string workspace
  298.     ZLockStatus$ = "UM UU UB UD"
  299.     ZMenuIndex = 2
  300.     ZNAK$ = CHR$(21)
  301.     ZNoAdvance = ZFalse
  302.     ZPageLength = 23
  303.     ZParseOff = ZFalse
  304.     ZPressEnter$ = " (Press [ENTER] to quit)"
  305.     ZPressEnterExpert$ = " ([ENTER] quits)"
  306.     ZPressEnterNovice$ = ZPressEnter$
  307.     ZPrivateDoor = ZFalse
  308.     ZRightMargin = 72
  309.     ZReturnLineFeed$ = ZCarriageReturn$ + _
  310.                         ZLineFeed$
  311.     ZSmartTable$ = "CS PB NS FN LN SL DT TM TR TE TL RP RR CT " + _
  312.                    "C1 C2 C3 C4 C0 DD BD DB UB DL UL FI VY VN " + _
  313.                    "TY TN BN ND FS LS CN "+ _
  314.                    "C5 C6 C7 C8 C9 CA CB CC CD CE CF"   ' DD061303
  315.     ZStartOfHeader$ = CHR$(1)
  316.     ZTimeLoggedOn$ = SPACE$(8)
  317.     ZTrue = NOT ZFalse
  318.     ZUpInc = -1
  319.     ZXOff$ = CHR$(19)
  320.     ZXOn$ = CHR$(17)
  321.     ZInterrupOn$ = CHR$(11) + ZCancel$ + ZXOff$ + ZXOn$ + ZCarriageReturn$
  322.     ZOptionEnd$ = ZReturnLineFeed$ + " ,("
  323.     ZCrLf$ = ZCarriageReturn$ + ZLineFeed$
  324.     ZVersionID$ = " Mpl030193"
  325.     ZWasLG$(1) = "Registration Check Failed"
  326.     ZWasLG$(2) = "Sysop name attempted"
  327.     ZWasLG$(3) = "Locked out attempt"
  328.     ZWasLG$(4) = "Password Attempt Failed"
  329.     ZWasLG$(5) = "Auto Lockout done"
  330.     ZWasLG$(6) = "Name in use on another Node!"
  331.     ZWasLG$(7) = ""
  332.     ZWasLG$(8) = "Locked reason read!"
  333.     ZWasLG$(9) = "Expired Registration"
  334.   CALL GetCommand (ZDebug,ZNetTime$,ZNetBaud$,ZCBaud$,ZNetReliable$) 'Pe 01/01/93
  335.     ZSubParm = 1
  336.     CALL ReadDef (ZConfigFileName$)
  337.     REDIM ZWorkAra$(ZMaxWorkVar)
  338.     REDIM ZGSRAra$(ZMaxWorkVar)
  339.     ZUseTPut = (ZUpperCase OR ZXOnXOff)
  340.     ZOrigCallers$ = ZCallersFile$
  341.     ZOrigMsgFile$ = ZMainMsgFile$
  342.     ZOrigUserFile$ = ZMainUserFile$
  343.     ZOrigSysopFN$ = ZSysopFirstName$
  344.     ZOrigSysopLN$ = ZSysopLastName$
  345.     ZPromptBell = ZPromptBellDef
  346.     ZSecretName$ = ZSysopPswd1$ + " " + ZSysopPswd2$
  347.     IF NOT ZSubBoard THEN _                           'lk 022092 for toss mod
  348.     ZOrigRBBSName$ = ZRBBSName$                       'lk 022092 for toss mod
  349.     END SUB
  350. '
  351. * DELETING old line(s)
  352. 112
  353. * REPLACING old line(s) by new
  354. 120 '  $SUBTITLE: 'EditDef - sub to edit config parameters'
  355. '  $PAGE
  356. '
  357. '  NAME    -- EditDef
  358. '
  359. '  INPUTS  --     PARAMETER                    MEANING
  360. '
  361. '  OUTPUTS --                          OUTPUT STRING
  362. '
  363. '  PURPOSE -- Interpretes and adjusts stored configuration parameters
  364. '
  365.       SUB EditDef STATIC
  366. * ------[ first line different ]------
  367.       ZMinsPerSessionDef = ZMinsPerSession                           ' KG082101
  368.       ZAllOpts$ = ZMainCmds$ + _
  369.                   ZFileCmd$ + _
  370.                   ZUtilCmds$ + _
  371.                   ZLibCmds$ + _
  372.                   ZGlobalCmnds$ + _
  373.                   ZSysopCmds$
  374.       ZHelpExtension$ = "." + _
  375.                         ZHelpExtension$
  376.       ZCompressedExt$ = ZDefaultExtension$
  377.       ZWasQ = INSTR(ZDefaultExtension$,".")
  378.       IF ZWasQ > 0 THEN _
  379.          ZDefaultExtension$ = LEFT$(ZDefaultExtension$, ZWasQ-1)
  380.       ZCurDirPath$ = ZDirPath$
  381.       ZTempExpiredSec = ZExpiredSec
  382.       ZBegMain = 1
  383.       ZBegFile = LEN(ZMainCmds$) + ZBegMain
  384.       ZBegUtil = LEN(ZFileCmd$) + ZBegFile
  385.       ZBegLibrary = LEN(ZUtilCmds$) + ZBegUtil
  386.       ZHelp$(3) = ZHelpPath$ + _
  387.                  ZHelp$(3)
  388.       ZHelp$(4) = ZHelpPath$ + _
  389.                  ZHelp$(4)
  390.       ZHelp$(7) = ZHelpPath$ + _
  391.                  ZHelp$(7)
  392.       ZHelp$(9) = ZHelpPath$ + _
  393.                  ZHelp$(9)
  394.       CALL BreakFileName (ZWelcomeFile$,ZWelcomeFileDrvPath$,Prefix$,_
  395.                      Extension$,ZTrue)
  396.      CALL ASCIICodes ("[","]",ZDefaultLineACK$)
  397.      CALL ASCIICodes ("[","]",ZHostEchoOn$)
  398.      CALL ASCIICodes ("[","]",ZHostEchoOff$)
  399.      CALL ASCIICodes ("[","]",ZEmphasizeOffDef$)
  400.      CALL ASCIICodes ("[","]",ZEmphasizeOnDef$)
  401.      ZDR1$ = ZFG1Def$
  402.      ZDR2$ = ZFG2Def$
  403.      ZDR3$ = ZFG3Def$
  404.      ZDR4$ = ZFG4Def$
  405.      IF ZSubParm = -62 THEN _
  406.         EXIT SUB
  407.      ZLocalUserMode = (RIGHT$(ZComPort$,1) < "1")
  408.      IF ZLocalUserMode THEN _
  409.         ZRecycleToDos = ZTrue
  410.      ZEchoer$ = ZDefaultEchoer$
  411.      IF LEN(ZScreenOutMsg$) < 2 THEN _
  412.         ZScreenOutMsg$ = ZStartOfHeader$
  413.      ZSmartTextCode$ = CHR$(ZSmartTextCode)
  414.      IF ZMaxWorkVar < 13 THEN _
  415.         ZMaxWorkVar = 13
  416. '
  417. ' ***  ESTABLISH RBBS-PC'S DOS SUBDIRECTORIES USAGE  ***
  418. '
  419.     IF ZMainFMSDir$ <> "" THEN _
  420.        ZFMSDirectory$ = ZDirPath$ + _
  421.                         ZMainFMSDir$ + _
  422.                         "." + _
  423.                         ZMainDirExtension$ : _
  424.        ZActiveFMSDir$ = ZFMSDirectory$ : _
  425.     ZUpcatHelp$ = ZHelpPath$ + _
  426.                   ZUpcatHelp$ + _
  427.                   ZHelpExtension$
  428.     IF ZSubDirCount < 1 THEN _
  429.        GOTO 123
  430.     FOR ZSubDirIndex = 1 TO ZSubDirCount
  431.        INPUT #2,ZSubDir$
  432.        IF RIGHT$(ZSubDir$,1) <> "\" THEN _
  433.          ZSubDir$(ZSubDirIndex) = ZSubDir$ + _
  434.                                  "\" _
  435.        ELSE ZSubDir$(ZSubDirIndex) = ZSubDir$
  436.     NEXT
  437.     GOTO 125
  438. * REPLACING old line(s) by new
  439. 126 CLOSE #2
  440. * ------[ first line different ]------
  441.    ' ZSubParm = -10
  442.    ' CALL Carrier
  443.     
  444. '
  445. ' ***  INITIALIZE OMNINET INTERFACE IF OMNINET IN USE  ***
  446. '
  447. * REPLACING old line(s) by new
  448. 128 IF ZNetworkType = 2 THEN _
  449.        ZWasCN$ = SPACE$(535) : _
  450.        CALL InitIO(ZWasA)
  451. * ------[ first line different ]------
  452. 'YW = 268
  453. 'For X = 1 to 9
  454. '    Call GetRBBSString(YW,RBBSString$)     'Pe 01/16/93
  455. '    ZWasLG$(X) = RBBSString$               'Pe 01/16/93 
  456. '    YW = YW + 1
  457. 'Next X
  458.  
  459.        END SUB
  460. '
  461. * REPLACING old line(s) by new
  462. 235 ZEightBit = ZTrue
  463.     IF ZExitToDoors THEN _
  464. * ------[ first line different ]------
  465.        CALL ReadProf(1)        'Pe 12/20/92
  466.     ZSubParm = -10
  467.     CALL Carrier
  468.     IF ZSubParm = 0 AND _
  469.        ZExitToDoors THEN _
  470.        ZSubParm = 1 : _
  471.        GOTO 335
  472.     IF ZSubParm = 0 AND _
  473.        ZExpectActiveModem THEN _
  474.        ZBaudTest! = VAL(ZNetBaud$) : _
  475.        CALL TestRel (ZNetReliable$) : _
  476.        GOTO 328
  477.     IF ZExpectActiveModem OR _
  478.        ZExitToDoors THEN _
  479.        ZSubParm = 4 : _
  480.        ZExitToDoors = ZFalse : _
  481.        EXIT SUB
  482.     IF ZSubParm = 0 THEN _
  483.        ConnectDelay! = TIMER + ZMaxCarrierWait : _
  484.        GOTO 324
  485.     CALL SysMenu
  486.     CALL ModemPut (ZModemResetCmd$)
  487.     CALL DelayTime (ZModemInitWaitTime)
  488.     CALL ModemPut (ZModemInitCmd$)
  489.     RingBack = ZFalse
  490.  
  491. Call LocateMenu (RingBack,ScreenCleared,AOK,1)      ' Pe menu174
  492. If AOK = ZTrue THEN _                ' Pe Menu174
  493.    If RingBack Then _
  494.      Goto 236 _
  495.        Else GOTO 237              ' Pe menu174
  496.  
  497.  LOCATE 16,55
  498.     IF ZRequiredRings = 0 THEN _
  499.        CALL LPrnt("WAITING FOR CARRIER",0) : _
  500.        GOTO 237
  501.  
  502.     IF MID$(ZModemInitCmd$, _
  503.       INSTR(ZModemInitCmd$,"S0") + 3,3) = "255" THEN _
  504.        CALL LPrnt("RING BACK SYSTEM",0) : _
  505.        RingBack = ZTrue : _
  506.        GOTO 236
  507.     CALL LPrnt(" WAITING FOR RING ",0)
  508.  
  509. * REPLACING old line(s) by new
  510. * ------[ first line different ]------
  511. 236 Call LocateMenu (RingBack,ScreenCleared,AOK,2)        ' Pe Menu174
  512.     IF AOK = ZTrue THEN _          ' Pe Menu174
  513.       GOTO 237                     ' Pe Menu174
  514.      LOCATE 16,76 : _
  515.     CALL LPrnt(MID$(STR$(ZRequiredRings),2),0)
  516.  
  517. * REPLACING old line(s) by new
  518. * ------[ first line different ]------
  519. 237 Call LocateMenu (RingBack,ScreenCleared,AOK,3)
  520. IF AOK <> ZTrue THEN
  521.  LOCATE 18,76
  522.     IF ZDosANSI THEN _
  523.        CALL LPrnt(ZEscape$ + "[05m" + "YES" + ZEscape$ + "[00m",0) _
  524.     ELSE CALL LPrnt ("YES",0)
  525.     COLOR ZFG,ZBG,ZBorder
  526.     LOCATE 20,56
  527. END IF
  528. '
  529. '
  530. ' *  GET READY TO ANSWER INCOMMING CALL:
  531. ' *       1.  LET THE MODEM "AUTO-ANSWER" FOR RBBS-PC.
  532. ' *           REQUIRED RINGS = 0 AND S0 = 1 IN MODEM INIT COMMAND.
  533. ' *       2.  ANSWER THE MODEM ON A SPECIFIED NUMBER OF RINGS.
  534. ' *           REQUIRED RINGS > 0 AND S0 = 254 IN MODEM Init COMMAND.
  535. ' *       3.  ANSWER THE MODEM ON A SPECIFIED NUMBER OF RINGS AFTER A USER
  536. ' *           First CALLS AND THEN HANGS UP (I.E. RING-BACK).
  537. ' *           REQUIRED RINGS > 0 AND S0 = 255 IN MODEM INIT COMMAND.
  538. '
  539. '
  540.     WasQQ = 255
  541.     WasI = INSTR(ZModemInitCmd$,"S0")
  542.     IF WasI = 0 THEN _
  543.        GOTO 239
  544.     IF VAL(MID$(ZModemInitCmd$,WasI + 3,3)) = 255 THEN _
  545.        WasQQ = 0 : _
  546.        ZBlk = WasQQ
  547.     ZSecsUsedSession! = TIMER
  548.     ZSubParm = 1
  549.     CALL Line25
  550.     RingAnswer = ZTrue
  551.     IF RingBack THEN _
  552.        RingAnswer = ZFalse
  553. * REPLACING old line(s) by new
  554. 260    IF RingBackWaitStart! > 0 THEN _
  555.           CALL CheckTime(RingBackWaitStart!, TempElapsed!, 2) : _
  556.           IF TempElapsed! > 45 THEN _
  557.              RingBackWaitStart! = 0 : _
  558.              RingBackCount = 0 : _
  559.              RingAnswer = ZFalse: _
  560.              IF RingBack THEN _
  561. * ------[ first line different ]------
  562.              Call LocateMenu (RingBack,ScreenCleared,AOK,4) : _       ' Pe menu174
  563.              If AOK = ZTrue Then Goto 265  _          ' Pe Menu174
  564.               Else LOCATE 20,56 : _
  565.                CALL LPrnt("Ringback timeout" + ZPagingPtrSupport$,1)
  566. '
  567. '  Comments  out the Following lines if you DO NOT want the screen to
  568. '  Blank Automaticaly...  120 Sec = 2 min  adjust if desired
  569. '
  570. ' DO NOT comment out the LINE NUMBER, just the CODE !!
  571.  
  572. * REPLACING old line(s) by new
  573. * ------[ first line different ]------
  574. 265  '  Call LocateMenu (RingBack,ScreenCleared,AOK,5)      ' Pe 02/08/93
  575.      CALL CheckTime(ZSecsUsedSession!, TempElapsed!, 2)    'RT020193MPL
  576.        IF TempElapsed! > 120 AND NOT ScreenCleared THEN _  'RT020193MPL
  577.           LOCATE ,,0 : _                                   'RT020193MPL
  578.           CLS : _                                          'RT020193MPL
  579.           ZWasCL = 1 : _                                   'RT020193MPL
  580.           ScreenCleared = ZTrue : _                        'RT020193MPL
  581.           ZSecsUsedSession! = TIMER                        'RT020193MPL
  582.        IF ZTimeToDropToDos! > 0 THEN _
  583.           IF ZOldDate$ <> DATE$ THEN _
  584.           IF TIMER => ZTimeToDropToDos! AND _
  585.              TIMER < 86340 THEN _      ' Skip btw 23:59 and 00:00
  586.                 ZSubParm = 7 : _
  587.                 EXIT SUB
  588.     Call LocateMenu (RingBack,ScreenCleared,AOK,5)                ' Pe021293
  589. * REPLACING old line(s) by new
  590. * ------[ first line different ]------
  591. 305  Call LocateMenu (RingBack,ScreenCleared,RingBack,AOK,6)
  592.       If AOK = ZTrue Then Goto 310
  593.       LOCATE 20,56
  594.       CALL LPrnt(TIME$ + " Ring " + STR$(ZWasQ),0)
  595. * REPLACING old line(s) by new
  596. 325 CALL FlushCom(WasX$)
  597.     IF ZSubParm = -1 THEN _
  598.        IF ZErrCode = 69 THEN _
  599.           ZSubParm = 5 : _
  600.        EXIT SUB
  601.     ModemResponse$ = ModemResponse$ + WasX$
  602.     IF LEN(ModemResponse$) > 200 THEN _
  603.        ModemResponse$ = RIGHT$(ModemResponse$,20)
  604.     CALL CheckTime(ConnectDelay!, TempElapsed!, 1)
  605.     IF TempElapsed! <= 0 THEN _
  606.        CALL UpdtCalr ("Connect timeout",1) : _
  607.        ZSubParm = 4 : _
  608.        EXIT SUB
  609.     IF ZDumbModem THEN _
  610.        ZBaudTest! = VAL(ZModemInitBaud$) : _
  611.        GOTO 327
  612.     IF INSTR(ModemResponse$,"FAST") THEN _
  613.        ZBaudTest! = 19200 : _
  614.        GOTO 327
  615.     IF INSTR(ModemResponse$,"ONNECT") THEN _
  616. * ------[ first line different ]------
  617.        CALL DelayTime(2) : _                            'RT022293
  618.        CALL FlushCom(WasX$) : _                         'RT022293
  619.        ModemResponse$ = ModemResponse$ + Wasx$ : _      'RT022293
  620.        ZBaudTest! = VAL(MID$(ModemResponse$,INSTR(ModemResponse$,"ONNECT") + 7)) : _
  621.        GOTO 327
  622.     IF INSTR(ModemResponse$,"ONLINE") THEN _
  623.        CALL DelayTime(2) : _                            'RT022293
  624.        CALL FlushCom(WasX$) : _                         'RT022293
  625.        ModemResponse$ = ModemResponse$ + Wasx$ : _      'RT022293
  626.        ZBaudTest! = VAL(MID$(ModemResponse$,INSTR(ModemResponse$,"ONLINE") + 7)) : _
  627.        GOTO 327
  628.     GOTO 324
  629. * REPLACING old line(s) by new
  630. 328 CALL SetBPS (ZBaudTest!,ZBPS)
  631. * ------[ first line different ]------
  632.     IF ZBPS = 0 THEN GOTO 324                                     'Lk 02/28/92
  633. * REPLACING old line(s) by new
  634. 336 ' $SUBTITLE: 'TestRel - Test for Reliable mode connection'
  635. ' $PAGE
  636. '
  637. '  NAME    -- TestRel
  638. '
  639. '  INPUTS  --     PARAMETER                    MEANING
  640. '                 Strng$                 String to check for reliable
  641. '
  642. '  OUTPUTS --    ZReliableMode          Reliable mode indicator
  643. '
  644. '  PURPOSE -- To test for reliable connect
  645. '
  646.     SUB TestRel (Strng$) STATIC
  647.     ZReliableMode = ZFalse
  648.     IF Strng$ = "" THEN _
  649.        EXIT SUB
  650.     IF INSTR(Strng$,"REL") OR _
  651.        INSTR(Strng$,"R C") OR _
  652.        INSTR(Strng$,"ARQ") OR _
  653.        INSTR(Strng$,"LAP") OR _
  654.        INSTR(Strng$,"ECL") OR _
  655.        INSTR(Strng$,"AFT") OR _
  656. * ------[ first line different ]------
  657.        INSTR(Strng$," EC") OR _              'Bc022393
  658.        INSTR(Strng$,"MNP") THEN _
  659.          ZReliableMode = -1
  660.     ZWasZ = INSTR(Strng$,"ARRIER ")
  661.     IF ZWasZ > 0 THEN _
  662.        IF VAL(MID$(Strng$,ZWasZ+6)) > 0 THEN _
  663.           ZCBaud$ = STR$(VAL(MID$(Strng$,ZWasZ+6))) : _
  664.           CALL Trim (ZCBaud$)
  665.     END SUB
  666. * REPLACING old line(s) by new
  667. * ------[ first line different ]------
  668. 675 Call GetRBBSString(278,RBBSString$)     'Pe 01/29/93
  669.    ZOutTxt$ = RBBSString$
  670.     ZHidden = ZTrue
  671.     CALL PopCmdStack
  672.     IF ZSubParm < 0 THEN _
  673.        ZPswdFailed = ZTrue : _
  674.        EXIT SUB
  675.     ZHidden = ZFalse
  676.     ZWasZ$ = ZUserIn$
  677. * REPLACING old line(s) by new
  678. * ------[ first line different ]------
  679. 680 Call GetRBBSString(65,RBBSString$)     'Pe 01/16/93
  680.     OutTxt$ = RBBSString$                'Pe 01/16/93 
  681.    CALL QuickTPut1 (OutTxt$)
  682.     ZLastIndex = 0
  683.     IF NOT ZMsgPswd THEN _
  684.        CALL UpdtCalr (ZActiveUserName$+" PW fail: " + ZWasZ$,1)
  685.     GOTO 670
  686.     END SUB
  687. * REPLACING old line(s) by new
  688. 949 ZLine25$ = "Node " + _
  689. * ------[ first line different ]------
  690.               ZNodeID$ + " " + _
  691.            ZPageStatus$ + " " + _
  692.            MID$("HOUR ",1, -5 * ZSysopAvail) + _                 'ST081501
  693.            MID$("PAGE ",1, -5 * ZSysopAnnoy) + _                 'ST081501
  694.            MID$("PNT ",1, -4 * ZPrinter) + _                     'ST081501
  695.            MID$("SYS ",1, -4 * ZSysopNext) + _
  696.            MID$("XOFF ",1,-5 * ZXOffEd) + _
  697.            MID$("CTS ",1,-4 * ZNotCTS)
  698. '
  699. '
  700. ' *  LINE 25 UPDATE ROUTINE
  701. '
  702. '
  703. * REPLACING old line(s) by new
  704. 950 IF NOT ZSnoop THEN _
  705.        EXIT SUB
  706.     ZCursorLine = CSRLIN
  707.     ZCursorRow = POS(0)
  708.     ZWasHH = LEN(ZActiveUserName$) + _
  709.          LEN(ZWasCI$) + _
  710.          LEN(ZLine25$) + _
  711. * ------[ first line different ]------
  712.          LEN(STR$(ZUserSecLevel))+ _
  713.          LEN(STR$(INT(MinsRemaining))) + 2              'Pe 05/29/91
  714.         LOCATE 25,1
  715.    IF ZNetworkType = 0 THEN _
  716.         ZLockStatus$ = SPACE$(2) + _                    'Pe 05/29/91
  717.                            LEFT$(ZTimeLoggedOn$,5)      'Pe 05/29/91
  718.     IF ZWasHH > 63 THEN _
  719.        ZWasHH = 0 _
  720.     ELSE _
  721.        ZWasHH = 64 - ZWasHH
  722.     ZLine25Hold$ = ZLine25$ + _
  723.                     SPACE$(ZWasHH) + _
  724.                     STR$(ZUserSecLevel) + _
  725.                     " " + _
  726.                     ZActiveUserName$ + _
  727.                     " " + _
  728.                     ZWasCI$ + _
  729.                     " " + _
  730.                     STR$(INT(MinsRemaining)) + _                  'Dgs-008
  731.                     " " + _
  732.                     ZLockStatus$
  733.     ZLine25Hold$ = LEFT$(ZLine25Hold$, 66) + " " + ZLockStatus$
  734.     IF ZDosANSI THEN _
  735.        ZLine25Hold$ = ZColorReset$ + ZLine25Hold$ + ZEmphasizeOff$
  736.     CALL LPrnt(ZLine25Hold$,0)
  737.     LOCATE ZCursorLine,ZCursorRow
  738.     END SUB
  739. * REPLACING old line(s) by new
  740. 1336 IF NOT ZOK THEN _
  741. * ------[ first line different ]------
  742.     Call GetRBBSString(279,RBBSString$) : _     'Pe 01/26/93
  743.         ZOutTxt$ = RBBSString$ + _
  744.              ZWasZ$ : _
  745.         CALL QuickTPut1 (ZOutTxt$) : _
  746.         CALL UpdtCalr (ZOutTxt$,2)
  747.      ZAnsIndex = ZAnsIndex + 1
  748.      IF ZAnsIndex <= ZLastIndex THEN _
  749.         GOTO 1332
  750.      IF FastHelp THEN _
  751.         FastHelp = ZFalse : _
  752.         EXIT SUB
  753.      GOTO 1331
  754. * REPLACING old line(s) by new
  755. 1380 ' $SUBTITLE: 'VIOLATION - handles all security violations'
  756. ' $PAGE
  757. '
  758. '  NAME    -- SecViolation
  759. '
  760. '  INPUTS  --     PARAMETER                    MEANING
  761. '
  762. '  OUTPUTS -- ZCursorLine               CURRENT LINE ON SCREEN
  763. '             ZCursorRow                CURRENT ROW ON ZCursorLine
  764. '
  765. '  PURPOSE -- Inform caller of security violation, augment count of
  766. '             violations and determine whether too many occurred.
  767. '
  768.      SUB SecViolation STATIC
  769.      CALL FlushKeys
  770.      CALL BufFile (ZSecVioHelp$,WasX)
  771.      IF NOT ZOK THEN _
  772. * ------[ first line different ]------
  773.     Call GetRBBSString(66,RBBSString$) : _     'Pe 01/16/93
  774.     OutTxt$ = RBBSString$ : _                'Pe 01/16/93 
  775.         CALL QuickTPut1 ( ZFirstName$ + OutTxt$)
  776.      CALL UpdtCalr ("SV!-" + ZViolation$,2)
  777.      ZLastIndex = 0
  778.      ZViolationsThisSession = ZViolationsThisSession + 1
  779.      IF ZMaxViolations = 0 OR ZViolationsThisSession <= ZMaxViolations THEN _
  780.         EXIT SUB
  781. * REPLACING old line(s) by new
  782. 1385 IF ZUserFileIndex < 1 THEN _
  783.         EXIT SUB
  784. * ------[ first line different ]------
  785.     Call GetRBBSString(280,RBBSString$)     'Pe 01/26/93
  786.    ZOutTxt$ = RBBSString$                'Pe 01/26/93 
  787.      IF ZUserSecLevel <= ZMinLogonSec THEN _
  788.         ZOutTxt$ = "" : _
  789.         ZUserSecLevel = ZUserSecLevel - 1 _
  790.      ELSE ZUserSecLevel = ZMinLogonSec
  791.      ZDenyAccess = ZTrue
  792.      END SUB
  793. * REPLACING old line(s) by new
  794. 1386 ' $SUBTITLE: 'DenyAccess - sub to permanently deny access'
  795. ' $PAGE
  796. '
  797. '  NAME    -- DenyAccess
  798. '
  799. '  INPUTS  --     PARAMETER                    MEANING
  800. '
  801. '  OUTPUTS -- (USER'S RECORD)
  802. '
  803. '  PURPOSE -- Permanently resets user's security level when access denied
  804. '
  805.      SUB DenyAccess STATIC
  806.      CALL TPut
  807.      ZLogonErrorIndex = 5
  808.      ZSubParm = 6
  809.      CALL FileLock
  810.      CALL OpenUser (ZHighestUserRecord)
  811.      FIELD 5, 128 AS ZUserRecord$
  812.      GET 5,ZUserFileIndex
  813.      MID$(ZUserRecord$,47,2) = MKI$(ZUserSecLevel)
  814.      PUT 5,ZUserFileIndex
  815. * ------[ first line different ]------
  816.      CALL MenuPlus (11)                                             'MENU1748
  817.      ZSubParm = 8
  818.      CALL FileLock
  819.      END SUB
  820. * REPLACING old line(s) by new
  821. 1430 IF ZWasY$ = "" THEN _
  822.         GOTO 1435
  823.      ON INSTR(ZInterrupOn$,ZWasY$) GOTO 1434,1434,1473,1475,1433
  824.      GOSUB 1476
  825. * ------[ first line different ]------
  826.      GOTO 1435
  827. * REPLACING old line(s) by new
  828. 1480 ' $SUBTITLE: 'LPrnt    - subroutine to write to display'
  829. ' $PAGE
  830. '
  831. '  NAME    -- LPrnt
  832. '
  833. '  INPUTS  -- PARAMETER             MEANING
  834. '             Strng$        STRING TO WRITE OUT
  835. '             NumReturns   NUMBER OF CARRIAGE RETURNS
  836. '
  837. '  OUTPUTS -- NONE
  838. '
  839. '  PURPOSE -- Subroutine to write to the display.
  840. '
  841.       SUB LPrnt (Strng$,NumReturns) STATIC
  842.       IF NOT ZSnoop THEN _
  843.          EXIT SUB
  844.       CALL PScrn (Strng$)
  845. * ------[ first line different ]------
  846.       IF ZUseBASICWrites THEN _
  847.          FOR WasI = 1 TO NumReturns : _
  848.             PRINT : _
  849.          NEXT : _
  850.       ELSE FOR WasI = 1 TO NumReturns : _
  851.               LOCATE ,,1 : _
  852.               CALL ANSI(ZCrLf$,ZWasCL,ZWasCC) : _
  853.               LOCATE ZWasCL,ZWasCC : _
  854.               NEXT
  855.       END SUB
  856. * REPLACING old line(s) by new
  857. 1534 ZUserIn$ = ZOutTxt$   ' Not Macro command - pass to normal processing
  858. * ------[ first line different ]------
  859. ' * strip off leading slash when not in turbokey mode so macros can be
  860. ' * written to work in both turbo and non-turbo-key mode
  861.      IF LEFT$(ZUserIn$,1) = "/" THEN IF NOT ZTurboKeyUser THEN _     ' KG092301
  862.         ZUserIn$ = RIGHT$(ZUserIn$,LEN(ZUserIn$)-1) : _              ' KG092301
  863.         ZTurboKey = ZFalse                                           ' KG092301
  864.      IF ZMacroEcho THEN _
  865.         ZSubParm = 4 : _
  866.         CALL TPut
  867.      WasX$ = ZCarriageReturn$
  868.      GOTO 1547
  869. * REPLACING old line(s) by new
  870. 1537 CALL CheckTime(ZAutoLogoff!, TempElapsed!, 3)
  871.      IF TempElapsed! < 30 THEN _
  872.         IF TempElapsed! <= 0 THEN _
  873.            CALL SkipLine (1) : _
  874.            ZSubParm = -1 : _
  875.            ZNo = ZTrue : _
  876.            ZRet = ZTrue : _
  877.            ZSleepDisconnect = NOT ZAutoLogoffReq : _
  878.            IF ZAutoLogoffReq THEN _
  879.               CALL UpdtCalr ("Auto-logoff",1): _
  880.               EXIT SUB _
  881.            ELSE CALL UpdtCalr ("Sleep disconnect",1) : _
  882.                 EXIT SUB _
  883.         ELSE IF SleepWarn THEN _
  884.                 SleepWarn = ZFalse : _
  885.                 Temp! = TempElapsed! : _
  886. * ------[ first line different ]------
  887.                  Call GetRBBSString(281,RBBSString$) : _     'Pe 01/26/93
  888.                ZOutTxt$ = RBBSString$ : _               'Pe 01/26/93 
  889.                 CALL RingCaller : _
  890.                 Call GetRBBSString(67,RBBSString$) : _     'Pe 01/16/93
  891.                 CALL QuickTput (RBBSString$ + "    " ,0) _ 'Pe 10/20/91
  892.              ELSE IF Temp! - TempElapsed! > 1.0 THEN _
  893.                      CALL QuickTPut (ZBackSpace$+ZBackSpace$,0) : _
  894.                      CALL QuickTPut (RIGHT$(STR$(CINT(TempElapsed!)),2),0) : _
  895.                      Temp! = TempElapsed!                 
  896.      CALL FindFKey
  897.      IF ZSubParm < 0 THEN _
  898.         EXIT SUB
  899. * REPLACING old line(s) by new
  900. 1545 WasX$ = ZWasY$
  901.      ZAutoLogoffReq = ZFalse
  902. * ------[ first line different ]------
  903.      'ZAutoEnd = 0                        'Pe 10/21/91
  904.      IF INSTR(ZLineEditChk$,ZWasY$) > 5 _
  905.         GOTO 1635
  906.      IF ZWasY$ < " " AND ZWasY$ <> ZCarriageReturn$ THEN _
  907.         GOTO 1525
  908.      IF ZWasY$ = "^" THEN _
  909.         GOTO 1525
  910.      IF ZWasY$ = ZCarriageReturn$ THEN _
  911.         GOTO 1547 _
  912.      ELSE GOSUB 1550
  913.      IF ZTurboKey < 1 THEN _
  914.         GOTO 1546
  915.      IF ZWasY$ = " " THEN _
  916.         ZWasY$ = ""
  917.      IF ZWasY$ <> "/" THEN _
  918.         ZUserIn$ = ZWasY$ : _
  919.         ZWasY$ = ZCarriageReturn$ : _
  920.         WasX$ = ZWasY$ : _
  921.         GOTO 1547
  922.      ZTurboKey = 0
  923.      GOTO 1525
  924. * REPLACING old line(s) by new
  925. 1546 IF LEN(ZUserIn$) => 512 THEN _
  926. * ------[ first line different ]------
  927.     Call GetRBBSString(282,RBBSString$) : _     'Pe 01/26/93
  928.     ZOutTxt$ = RBBSString$ : _               'Pe 01/26/93 
  929.         ZSubParm = 5 : _
  930.         CALL TPut : _
  931.         ZWasY$ = ZCarriageReturn$ : _
  932.         WasX$ = ZWasY$ : _
  933.         GOTO 1547
  934.      ZUserIn$ = ZUserIn$ + _
  935.           ZWasY$
  936.      GOTO 1525
  937. * REPLACING old line(s) by new
  938. 1550 IF ZLogonActive THEN _
  939.         GOSUB 1549 : _
  940.         ZHidden = (Temp = 2 - (ZLenIndiv > 0 AND ZStartIndiv > 0))
  941.      IF ZHidden THEN _
  942.         IF (WasX$ <> " " AND WasX$ <> ";") THEN _
  943.            WasX$ = "."
  944.      CALL LPrnt(WasX$,0)
  945. * ------[ first line different ]------
  946.               GOTO 1551
  947.      IF ZHidden AND (WasX$ <> " ") THEN _
  948.         WasX$ = "."
  949.      CALL LPrnt(WasX$,0)
  950. * REPLACING old line(s) by new
  951. 1575 IF LEN(ZUserIn$) > 4000 THEN _
  952. * ------[ first line different ]------
  953.     Call GetRBBSString(283,RBBSString$) : _     'Pe 01/26/93
  954.     ZOutTxt$ = RBBSString$ + ZFirstName$ : _               'Pe 01/26/93 
  955.         ZSubParm = 5 : _
  956.         CALL TPut : _
  957.         IF ZSubParm = -1 OR ZFunctionKey <> 0 THEN _
  958.            EXIT SUB _
  959.         ELSE GOTO 1500
  960.      IF ZParseOff THEN _
  961.         ZParseOff = ZFalse : _
  962.         GOTO 1620
  963.      CALL ParseIt
  964.      IF ZWasQ = 1 THEN _
  965.         GOTO 1622
  966.      GOTO 1625
  967. * REPLACING old line(s) by new
  968. 1580 ZAutoLogoff! = TIMER + ZWaitBeforeDisconnect
  969.      IF ZAutoLogoffReq OR ZWaitExpired THEN _
  970.         ZWaitExpired = ZFalse : _
  971.         IF NOT ZSuspendAutologoff THEN _
  972. * ------[ first line different ]------
  973.            ZAutoLogoff! = TIMER + 15          'Pe 10/20/91
  974.      RETURN
  975. * REPLACING old line(s) by new
  976. 1625 IF LEN(ZUserIn$) < 4 THEN _
  977.         WasX$ = LEFT$(ZUserIn$,3): _
  978.         CALL AllCaps (WasX$) : _
  979.         ZYes = (INSTR("YES",WasX$) = 1) : _
  980. * ------[ first line different ]------
  981.      ZNo = (INSTR("NO",WasX$) = 1 OR WasX$ = "A" OR WasX$ = "Q") : _
  982.         ZReply = (WasX$ = "RE") OR ZReply : _
  983.         ZKillMessage = (WasX$ = "K") OR ZKillMessage
  984.      ZHidden = ZFalse
  985. * REPLACING old line(s) by new
  986. 1628 CALL VerifyAns
  987.      IF NOT ZOK THEN _
  988. * ------[ first line different ]------
  989.     Call GetRBBSString(68,RBBSString$) : _     'Pe 01/16/93
  990.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  991.         CALL QuickTPut1 (OutTxt$+ ZUserIn$(1) + ">") : _
  992.         GOTO 1500
  993.      HoldA$ = ""
  994.      ZForceKeyboard = ZFalse
  995.      IF ZMacroSave > 0 THEN _
  996.         ZGSRAra$(ZMacroSave) = ZUserIn$ : _
  997.         ZMacroSave = 0 : _
  998.         GOTO 1632
  999.      IF (ZDistantTGet > 0) OR (ZMacroTemplate$ <> "") THEN _
  1000.         CALL WipeLine (38) : _
  1001.         IF NOT ZNo THEN _
  1002.            GOTO 1632 _
  1003.         ELSE ZWasQ = 0 : _
  1004.              ZMacroTemplate$ = "" : _
  1005.              ZDistantTGet = 0 : _
  1006.              ZNo = ZFalse : _
  1007.              GOTO 1633
  1008.      IF ZMacroActive THEN _
  1009.         ZLastIndex = ZWasQ : _
  1010.         FirstIndex = 1: _
  1011.         ZMacroActive = NOT EOF(6) : _
  1012.         EXIT SUB
  1013.      IF ZAnsIndex > 255 OR ((NOT InStack) AND INSTR(ZUserIn$,".") > 0) THEN _
  1014.         EXIT SUB
  1015.      IF MacroIndex OR ZSubParm < 3 THEN _
  1016.         MacroIndex = 1 _
  1017.      ELSE MacroIndex = ZAnsIndex
  1018.      CALL NoPath (ZUserIn$(MacroIndex),Found)
  1019.      IF Found THEN _
  1020.         EXIT SUB
  1021.      CALL CheckMacro (ZUserIn$(MacroIndex),Found)
  1022.      IF Found THEN _
  1023.         ZStoreParseAt = ZAnsIndex : _
  1024.         GOTO 1525
  1025.      EXIT SUB
  1026. * REPLACING old line(s) by new
  1027. 1638 ZWasDF$ = ZUserIn$
  1028.      CALL AllCaps (ZWasDF$)
  1029.      IF ZWasDF$ = "NS" THEN _
  1030.          ZUserIn$ = "C" : _
  1031.          ZNonStop = ZTrue
  1032.      ZUserIn$(ZStoreParseAt) = ZUserIn$
  1033.      ZNonStop = ZNonStop OR (ZWasDF$ = "C" AND NOT ZStackC)
  1034. * ------[ first line different ]------
  1035. IF ZAutoEnd = 3 THEN _   'Pe 10/20/91
  1036.   ZNonStop = ZFalse      'Pe 10/20/91
  1037.      GOTO 1642
  1038. * REPLACING old line(s) by new
  1039. 1640 ZWasB = INSTR(ZWasA,ZUserIn$,ParseChar$)
  1040.      ZWasC = ZWasB-ZWasA
  1041.      IF ZWasC < 1 THEN _
  1042.         ZEOL = ZTrue : _
  1043.         ZWasC = 128
  1044.      ZWasDF$ = MID$(ZUserIn$,ZWasA,ZWasC)
  1045.      IF ZWasDF$ = "" THEN GOTO 1641
  1046.         ZWasQ = ZWasQ + 1
  1047.         ZStoreParseAt = ZStoreParseAt + 1
  1048.         ZUserIn$(ZStoreParseAt) = ZWasDF$
  1049.         CALL AllCaps(ZWasDF$)
  1050.         WasX = INSTR(";NS;/G;C;",";"+ZWasDF$+";")
  1051.         IF WasX = 0 THEN GOTO 1641
  1052.            ZNonStop = ZNonStop OR (WasX = 1) OR (WasX = 7 AND NOT ZStackC)
  1053.      IF ZStoreParseAt > 1 THEN IF INSTR("Jj",ZUserIn$(ZStoreParseAt-1)) THEN _
  1054.         ZNonStop = (ZPageLength < 1)
  1055. * ------[ first line different ]------
  1056. IF ZAutoEnd = 3 THEN _   'Pe 10/20/91
  1057.   ZNonStop = ZFalse      'Pe 10/20/91
  1058.            ZAutoLogoffReq = ZAutoLogoffReq OR (WasX = 4)
  1059.            IF ZAutoLogoffReq THEN _
  1060.            Call GetRBBSString(69,RBBSString$) : _     'Pe 01/16/93
  1061.            OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  1062.             CALL QuickTPut1 (OutTxt$)
  1063.            IF ZWasQ > 0 AND WasX < 7 THEN _
  1064.               ZWasQ = ZWasQ - 1 : _
  1065.               ZStoreParseAt = ZStoreParseAt - 1
  1066. * REPLACING old line(s) by new
  1067. 1654 ' $SUBTITLE: 'SetBaud - sub to set the baud rate in the RS232'
  1068. ' $PAGE
  1069. '
  1070. '  NAME    -- SetBaud
  1071. '
  1072. '  INPUTS  --     PARAMETER                    MEANING
  1073. '             ZBaudRateDivisor   NUMBER TO DIVIDE THE 8250 CHIP'S
  1074. '                                 PROGRAMABLE CLOCK TO ADJUST THE
  1075. '                                 BAUD RATE TO THE USER'S BAUD
  1076. '                                 RATE (INDEPENDENT OF THE BAUD
  1077. '                                 RATE USED TO OPEN THE COMM. PORT)
  1078. '
  1079. '        DESIRED BAUD        DIVISIOR (DECIMAL) TO OBTAIN DESIRED BAUD RATE
  1080. '            RATE              PCjr         PC AND XT
  1081. '              50             2237             2304
  1082. '              75             1491             1536
  1083. '             110             1017             1047
  1084. '             134.5            832              857
  1085. '             150              746              768
  1086. '             300              373              384
  1087. '             600              186              192
  1088. '            1200               93               96
  1089. '            1800               62               64
  1090. '            2000               56               58
  1091. '            2400               47               48
  1092. '            3600               31               32
  1093. '            4800               23               24
  1094. '            7200          not available         16
  1095. '            9600          not available         12
  1096. * ------[ first line different ]------
  1097. '           14400          not available          8
  1098. '           19200          not available          6
  1099. '           38400               "                 3
  1100. '  OUTPUTS -- BAUD RATE SET IN THE RS232 INTERFACE
  1101. '
  1102. '  PURPOSE -- To set the baud rate in the RS232 interface
  1103. '             inpependent of the baud rate the communications port
  1104. '             was opened at
  1105. '
  1106.       SUB SetBaud STATIC
  1107.      IF ZCBaud$ = "" THEN _
  1108.         ZCBaud$ = MID$(ZBaudRates$,(-5 * ZBPS),5) : _                ' BH070401
  1109.         CALL Trim (ZCBaud$)                                          ' BH070401
  1110.      Temp! = VAL(ZCBaud$)
  1111.      IF Temp! > 0 THEN CALL SetBPS (Temp!,ZCBPS)
  1112.      IF (ZCBPS = 0 OR Temp! = 0) THEN ZCBPS = ZBPS
  1113.      IF NOT ZKeepInitBaud THEN _
  1114.         ZTalkToModemAt$ =  MID$(ZBaudRates$,(-5 * ZBPS),5) _
  1115.      ELSE ZTalkToModemAt$ = ZModemInitBaud$
  1116.      CALL Trim (ZTalkToModemAt$)
  1117.      IF LEN(ZTalkToModemAt$) < 5 THEN _
  1118.         ZTalkToModemAt$ = SPACE$(4 - LEN(ZTalkToModemAt$)) + _
  1119.                             ZTalkToModemAt$
  1120.      IF ZEightBit THEN_
  1121.         Parity = 2 : _                                    ' No PARITY
  1122.         DataBits = 3 : _                                  ' 8 DATA BITS
  1123.         StopBits = 0 _                                    ' 1 STOP BIT
  1124.      ELSE Parity = 3 : _                                  ' EVEN PARITY
  1125.           DataBits = 2 : _                                ' 7 DATA BITS
  1126.           StopBits = 0                                    ' 1 STOP BIT
  1127.      ComSpeed! = VAL(ZTalkToModemAt$)
  1128.      IF ComSpeed! > 19200 THEN _
  1129.         IF ZFossil THEN _
  1130.            WasI = &H9600 _
  1131.         ELSE WasI = 19200 _
  1132.      ELSE WasI = ComSpeed!
  1133.      IF ZFossil THEN _
  1134.         CALL FosSpeed(ZComPort,WasI,Parity,DataBits,StopBits) : _
  1135.         EXIT SUB
  1136.      IF ComSpeed! = 2400 THEN _
  1137.         ZBaudRateDivisor = &H30 + (1 * (ZComputerType = 2)) _
  1138.      ELSE IF ComSpeed! = 1200 THEN _
  1139.         ZBaudRateDivisor = &H60 + (3 * (ZComputerType = 2)) _
  1140.      ELSE IF ComSpeed! = 9600 THEN _
  1141.         ZBaudRateDivisor = &HC _
  1142.      ELSE IF ComSpeed! = 300 THEN _
  1143.         ZBaudRateDivisor = &H180 + (11 * (ZComputerType = 2)) _
  1144.      ELSE IF ComSpeed! = 450 THEN _
  1145.         ZBaudRateDivisor = &H100 + (8 * (ZComputerType = 2)) _
  1146.      ELSE IF ComSpeed! = 4800 THEN _
  1147.         ZBaudRateDivisor = &H18 _
  1148.      ELSE IF ComSpeed! = 19200 THEN _
  1149.         ZBaudRateDivisor = &H6 _
  1150.      ELSE IF ComSpeed! = 38400 THEN _
  1151.         ZBaudRateDivisor = &H3
  1152.      MostSignifByte = FIX (ZBaudRateDivisor / 256)
  1153.      LeastSignifByte = ZBaudRateDivisor - (MostSignifByte * 256)
  1154.      LineCntlStatus = INP(ZLineCntlReg)
  1155.      MSBSave = INP(ZMSB)
  1156.      OUT ZMSB,0
  1157.      OUT ZLineCntlReg,LineCntlStatus OR 128
  1158.      OUT ZLSB,LeastSignifByte
  1159.      OUT ZMSB,MostSignifByte
  1160.      OUT ZLineCntlReg,LineCntlStatus
  1161.      OUT ZMSB,MSBSave
  1162.      END SUB
  1163. * REPLACING old line(s) by new
  1164. * ------[ first line different ]------
  1165. 2021 ZOutTxt$ = "To [All],S)ysop," + _                               ' Mpl090202
  1166.                  LEFT$("D)istribution,",-14*EnableCC) + _
  1167.                  " or Full or Partial Name"                          ' DD073101
  1168.      CALL SkipLine (1)
  1169.      ZSemiOnly = ZTrue
  1170.      CALL PopCmdStack
  1171.      IF NOT ZSysop THEN _                             'SM091908
  1172.         CALL SmartText(ZUserIn$,ZFalse,ZFalse,ZFalse)           'Pe 02/06/93
  1173.      IF LEN(ZUserIn$(ZAnsIndex)) > 30 THEN _
  1174.     Call GetRBBSString(23,RBBSString$) : _     'Pe 01/16/93
  1175.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  1176.         CALL QuickTPut1 (OutTxt$) : _
  1177.         GOTO 2021
  1178.      Found = ZTrue
  1179.      IF ZWasQ = 0 THEN _
  1180.          MsgTo$ = "ALL" : _    'Pe 12/08/91
  1181.            GOTO 2032 _         'Pe 12/08/91
  1182.      ELSE ZWasDF$ = ZUserIn$(ZAnsIndex) : _
  1183.           CALL AllCaps (ZWasDF$) : _
  1184.           CALL Trim (ZWasDF$) : _                                    ' DD082301
  1185.           ZUserIn$(ZAnsIndex) = ZWasDF$ : _
  1186.           MsgTo$ = ZWasDF$ : _                                       'Pe Efnd mod
  1187.        IF ZWasDF$ = "A" THEN _
  1188.              MsgTo$ = "ALL" _
  1189.           ELSE IF ZWasDF$ = "S" THEN _
  1190.              MsgTo$ = ZSysopFirstName$ + " " +ZSysopLastName$ _   'TS 04/14/09
  1191.           ELSE IF ZWasDF$ = "D" AND EnableCC THEN _
  1192.              GOTO 2025 _
  1193.           ELSE MsgTo$ = ZWasDF$
  1194.      GOTO 2032
  1195. * REPLACING old line(s) by new
  1196. * ------[ first line different ]------
  1197. 2025    Call GetRBBSString(284,RBBSString$)    'Pe 01/26/93
  1198.      ZOutTxt$ = RBBSString$                'Pe 01/26/93 
  1199.      CALL PopCmdStack
  1200.      IF ZWasQ = 0 THEN _
  1201.         GOTO 2021
  1202.      ZFileName$ = ZUserIn$(ZAnsIndex)
  1203.      CALL AllCaps (ZFileName$)
  1204.      IF INSTR("?H",ZFileName$) > 0 THEN _
  1205.         GOTO 2024
  1206.      CALL BadFile (ZFileName$,BadFileNameIndex)
  1207.      ON BadFileNameIndex GOTO 2026,2025,2025
  1208. * REPLACING old line(s) by new
  1209. 2026 ZFileName$ = ZDistriPath$ + ZFileName$ + ".LST"
  1210.      CALL FindItX (ZFileName$,7)
  1211.      IF NOT ZOK THEN _
  1212. * ------[ first line different ]------
  1213.     Call GetRBBSString(70,RBBSString$) : _     'Pe 01/16/93
  1214.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  1215.         CALL QuickTPUT1 (ZUserIn$ + OutTxt$) : _
  1216.         ZMplPersUpload = ZFalse : _
  1217.         GOTO 2024
  1218.      ZNumHeaders = 0
  1219.     ZMplPersUpload = ZTrue                                         'Mpl090202
  1220.      CALL OpenWorkA (ZNodeWorkFile$)
  1221.      WHILE NOT EOF(7)
  1222.         CALL ReadDir (7,1)
  1223.         CALL AllCaps (ZOutTxt$)
  1224.         ZWasDF$ = ZOutTxt$
  1225.         CALL WhoCheck (ZOutTxt$, Found, RcvrRecNum)
  1226.         ZNumHeaders = ZNumHeaders + 1
  1227.         CALL PrintWorkA (ZWasDF$ + "," + STR$(-RcvrRecNum*Found))
  1228.      WEND
  1229.      GOTO 2033
  1230. * REPLACING old line(s) by new
  1231. 2032 RcvrRecNum = 0
  1232. * ------[ first line different ]------
  1233.       ZMplPersUpload = ZFalse                                      'Mpl090202
  1234.      IF MsgTo$ <> "ALL" THEN _
  1235.         IF (LEFT$(MsgTo$,4) <> "ALL " AND ZStartHash = 1) THEN _
  1236.            CALL CheckInt (MsgTo$) : _                                ' KG082201
  1237.            IF ZTestedIntValue = 0 OR ZUserSecLevel < ZSysOpSecLevel THEN _' DD012102
  1238.            ZWasDF = INSTR(MsgTo$+" @"," @") : _
  1239.            TempHashValue$ = LEFT$(MsgTo$,ZWasDF-1) : _
  1240.            ZMplPersUpload = Ztrue : _                              'Pe 06/08/91
  1241.            CALL WhoCheck (TempHashValue$,Found,RcvrRecNum) : _
  1242.            CALL QuickPeek (ZUserIn$(ZAnsIndex),MsgTo$,Found): _    'Pe Efnd mod   
  1243.            CALL AliasChk (MsgTo$,Found,UserNumFound) : _           'Mpl-ALias2            IF MsgTo$ = "" THEN EXIT SUB : _                       ' DD062502
  1244.            IF NOT Found THEN _
  1245.               ZLastIndex = 0 : _
  1246.               RcvrRecNum = 0 : _
  1247.                Call GetRBBSString(71,RBBSString$) : _     'Pe 01/16/93
  1248.                OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  1249.               CALL QuickTPut1 (MsgTo$ + OutTxt$ +" " + _' Mpl090202
  1250.                    ZRBBSName$ + "!") : _                             ' DD060101
  1251.               ZMplPersUpload = ZFalse : _                            'Pe 06/08/91
  1252.               IF NOT ZReply THEN _
  1253.              Call GetRBBSString(285,RBBSString$) : _     'Pe 01/26/93
  1254.              ZOutTxt$ = RBBSString$ : _               'Pe 01/26/93 
  1255.                  ZTurboKey = -ZTurboKeyUser : _
  1256.                  ZLastIndex = 0 : _
  1257.                  GOSUB 2034 : _
  1258.                  IF NOT ZYes THEN _
  1259.                     MsgTo$ = "" : _                                  ' DD080301
  1260.                     EXIT SUB                                         ' DD080301
  1261.      CALL CheckInt (MsgTo$)                                          ' DD012102
  1262.      IF ZTestedIntValue > 1 AND ZUserSecLevel >= ZSysOpSecLevel THEN _' DD012102
  1263.         ZMplPersUpload = ZTrue                                       ' DD012102
  1264.      IF MsgTo$ = Temp$ THEN _
  1265.     Call GetRBBSString(286,RBBSString$) : _     'Pe 01/26/93
  1266.     ZOutTxt$ = RBBSString$ : _               'Pe 01/26/93 
  1267.         ZLastIndex = 0 : _
  1268.         GOSUB 2034 : _
  1269.         IF NOT ZYes THEN _
  1270.            MsgTo$ = ""
  1271.      CALL OpenWorkA (ZNodeWorkFile$)
  1272.      CALL PrintWorkA (MsgTo$ + "," + STR$(RcvrRecNum))
  1273.      CLOSE 2
  1274.      ZNumHeaders = ZNumHeaders + 1
  1275.      IF EnableCC AND (NOT ZReply) AND MsgTo$ <> "ALL" AND _
  1276.         MsgTo$ <> "" AND LEFT$(MsgTo$,4) <> "ALL " AND _
  1277.         (NOT ZSysopComment) AND (NOT ZSysopMsg) THEN _
  1278.     Call GetRBBSString(287,RBBSString$) : _     'Pe 01/26/93
  1279.     ZOutTxt$ = RBBSString$ : _               'Pe 01/26/93 
  1280.            CALL PopCmdStack : _
  1281.            IF ZYes THEN _
  1282.               GOTO 2021
  1283. * REPLACING old line(s) by new
  1284. 2075 IF MsgTo$ = "ALL" THEN _
  1285. * ------[ first line different ]------
  1286.     Call GetRBBSString(72,RBBSString$) : _     'Pe 01/16/93
  1287.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  1288.         CALL QuickTPut1 (OutTxt$) : _
  1289.         GOTO 2060
  1290.      IF ZWasZ$ = "P" THEN _
  1291.         GOTO 2088
  1292. * REPLACING old line(s) by new
  1293. * ------[ first line different ]------
  1294. 2081    Call GetRBBSString(73,RBBSString$)     'Pe 01/16/93
  1295.      OutTxt$ = RBBSString$                'Pe 01/16/93 
  1296.      CALL QuickTPut1 (OutTxt$ + " " + MsgTo$)
  1297. * REPLACING old line(s) by new
  1298. 2085 ZOutTxt$ = "Password"
  1299.      GOSUB 2096
  1300.      IF ZWasQ = 0 THEN _
  1301.         IF LEFT$(MsgPswd$,1) = "!" THEN _
  1302.            MsgPswd$ = MID$(MsgPswd$,2) : _
  1303. * ------[ first line different ]------
  1304.     Call GetRBBSString(74,RBBSString$) : _     'Pe 01/16/93
  1305.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  1306.            CALL QuickTPut1 (OutTxt$ + " " + MsgPswd$) : _
  1307.            RETURN _
  1308.         ELSE _
  1309.         GOTO 2085
  1310.      IF LEN(ZUserIn$) > WasL THEN _
  1311.     Call GetRBBSString(75,RBBSString$) : _     'Pe 01/16/93
  1312.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  1313.         CALL QuickTPut1 (STR$(WasL) + OutTxt$) : _
  1314.         GOTO 2085
  1315.      IF WasL = 15 AND LEFT$(ZUserIn$,1) = "!" THEN _
  1316.     Call GetRBBSString(76,RBBSString$) : _     'Pe 01/16/93
  1317.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  1318.         CALL QuickTPut1 (OutTxt$) : _
  1319.         GOTO 2085
  1320.      RETURN
  1321. '
  1322. ' **  PASSWORD PROTECT MESSAGE (USERS WITH PASSWORD AND SYSOP CAN READ) *
  1323. '
  1324. * REPLACING old line(s) by new
  1325. * ------[ first line different ]------
  1326. 2088 Call GetRBBSString(288,RBBSString$)     'Pe 01/26/93
  1327.     ZOutTxt$ = RBBSString$                'Pe 01/26/93 
  1328.      ZTurboKey = -ZTurboKeyUser
  1329.      GOSUB 2096
  1330.      IF NOT ZYes THEN _
  1331.         GOTO 2070
  1332.      WasL = 14
  1333.      WasA1$ = "!"
  1334.      GOSUB 2085
  1335.      CALL AllCaps (ZUserIn$)
  1336.      GOTO 2092
  1337. '
  1338. ' ** MAKE MESSAGE KILL PROTECTED (ONLY SENDER, ADDRESSEE AND SYSOP CAN KILL) *
  1339. '
  1340. * REPLACING old line(s) by new
  1341. 2250 ' $SUBTITLE: 'WhoCheck - Checks whether user exists'
  1342. ' $PAGE
  1343. '
  1344. '  NAME    -- WhoCheck
  1345. '
  1346. '  INPUTS  --   PARAMETER                    MEANING
  1347. '              WhoFind$                User to find
  1348. '
  1349. '  OUTPUTS --  WhoFound                Whether user found
  1350. '              UserNumFound           Record # of user
  1351. '
  1352. '  PURPOSE --  Validate that user record exists.  Sysop
  1353. '              counted as found even if lack user record.
  1354. '
  1355.      SUB WhoCheck (WhoFind$,WhoFound,UserNumFound) STATIC
  1356.      UserNumFound = 0
  1357.      IF ZStartHash <> 1 THEN _
  1358.         WhoFound = ZTrue : _
  1359.         EXIT SUB
  1360.      Work128$ = ZUserRecord$
  1361.      WhoFound = ZFalse
  1362.      ToSysop = (INSTR(WhoFind$,"SYSOP") > 0 OR _
  1363.                 INSTR(WhoFind$,ZSysopFirstName$ + " " + ZSysopLastName$) > 0)
  1364. * ------[ first line different ]------
  1365.      CALL OpenUser (ZHighestUserRecord)
  1366.      FIELD 5, 128 AS ZUserRecord$
  1367.      IF ToSysop THEN _
  1368.     WasX$ = ZSecretName$ : _ 
  1369.          Call MenuPlus (4) _                    ' Pe Menu174
  1370.      ELSE WasX$ = WhoFind$
  1371.      ZWasDF = INSTR(WasX$+"@","@")
  1372.      WasX$ = LEFT$(WasX$,ZWasDF)
  1373.      IF LEN(WasX$) > 1 THEN _
  1374.         CALL FindUser (WasX$,"",ZStartHash,ZLenHash,_
  1375.                        0,0,ZHighestUserRecord,WhoFound,_
  1376.                        UserNumFound,ZWasSL)
  1377.      LSET ZUserRecord$ = Work128$
  1378.      IF NOT WhoFound THEN _
  1379.         IF ToSysop THEN _
  1380.            WhoFound = ZTrue 
  1381.      END SUB
  1382. * REPLACING old line(s) by new
  1383. 2620 ZOutTxt$ = "Line #" + _
  1384.           STR$(WasL) + _
  1385.           " is:" + _
  1386.           ZReturnLineFeed$ + _
  1387.           ZOutTxt$(WasL)
  1388.      ZSubParm = 3
  1389.      CALL TPut
  1390.      GOSUB 2695
  1391.      IF NOT ZExpertUser THEN _
  1392. * ------[ first line different ]------
  1393.     Call GetRBBSString(77,RBBSString$) : _     'Pe 01/16/93
  1394.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  1395.         CALL QuickTPut1 (OutTxt$)
  1396.      ZOutTxt$ = "Search for" + _
  1397.           ZPressEnterExpert$
  1398.      ZMacroMin = 99
  1399.      ZParseOff = ZTrue
  1400.      ZSubParm = 1
  1401.      GOSUB 2694
  1402.      IF ZWasQ = 0 THEN _
  1403.         EXIT SUB
  1404.      ZWasY$ = LEFT$(ZUserIn$,1)
  1405.      IF ZWasY$ = RIGHT$(ZUserIn$,1) THEN _
  1406.         IF LEN(ZUserIn$) > 2 THEN _
  1407.            WasX = INSTR(2,ZUserIn$,ZWasY$) : _
  1408.            IF WasX < LEN(ZUserIn$) THEN _
  1409.               IF ZWasY$ < "0" OR (ZWasY$ > "9" AND ZWasY$ < "A") THEN _
  1410.                  ZUserIn$ = MID$(ZUserIn$,2,LEN(ZUserIn$)-2) : _
  1411.                  WasX = WasX - 1 : _
  1412.                  GOTO 2622
  1413.      WasX = INSTR(ZUserIn$,";")
  1414. * REPLACING old line(s) by new
  1415. 2660 WasX = INSTR(1,ZOutTxt$(WasL),WasX$)
  1416.      IF WasX = 0 THEN _
  1417. * ------[ first line different ]------
  1418.     Call GetRBBSString(78,RBBSString$) : _     'Pe 01/16/93
  1419.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  1420.         CALL QuickTPut1 ("<" + WasX$ + OutTxt$ + STR$(WasL)) : _
  1421.         GOTO 2620
  1422. * REPLACING old line(s) by new
  1423. 3730 IF TabToSpace > 0 THEN _
  1424.         WasX$ = " " : _
  1425.         TabToSpace = TabToSpace - 1 : _
  1426.         GOTO 3750
  1427.      CALL FindFKey
  1428.      IF ZSubParm < 0 THEN _
  1429.         EXIT SUB
  1430.      WasX$ = ZKeyPressed$
  1431.      IF WasX$ = "" THEN _
  1432. * ------[ first line different ]------
  1433.         GOTO 3732 : _                                                ' KG011201
  1434.         IF ZLocalUser THEN _
  1435.            GOTO 3733 _
  1436.         ELSE GOTO 3732
  1437.      IF WasX$ = ZEscape$ THEN _
  1438.         ZKeyPressed$ = WasX$ : _
  1439.         EXIT SUB
  1440.      SendRemote = ZTrue
  1441.      WasZ = INSTR(ZLineEditChk$,WasX$)
  1442.      IF WasZ < 1 THEN _
  1443.         GOTO 3750 _
  1444.      ELSE IF WasZ > 4 THEN _
  1445.              GOTO 3870 _
  1446.      ELSE IF WasZ = 1 THEN _
  1447.              GOTO 3810
  1448.      IF ZLocalUser THEN _
  1449.         GOTO 3730
  1450. * REPLACING old line(s) by new
  1451. 3732 IF ZCommPortStack$ <> "" THEN _
  1452.         WasX$ = LEFT$(ZCommPortStack$,1) : _
  1453.         ZCommPortStack$ = RIGHT$(ZCommPortStack$,LEN(ZCommPortStack$)-1) : _
  1454.         GOTO 3738
  1455. * ------[ first line different ]------
  1456.      IF NOT ZLocalUser THEN _                                        ' KG011201
  1457.         CALL EofComm (Char) : _                                      ' KG011201
  1458.         IF Char <> -1 THEN _                                         ' KG011201
  1459.            GOTO 3736                                                 ' KG011201
  1460. * REPLACING old line(s) by new
  1461. 3750 IF SendRemote THEN _
  1462.         CALL PutCom(WasX$)
  1463. * ------[ first line different ]------
  1464.      IF WasX$ = ZCarriageReturn$ THEN _
  1465.         CALL LPrnt (ZCrLf$,0) : _
  1466.         Col = Col - 1 : _
  1467.         GOTO 3850 _
  1468.      ELSE _
  1469.         CALL LPrnt (WasX$, 0)
  1470. * REPLACING old line(s) by new
  1471. 3952 ' $SUBTITLE: 'KillMsg - subroutine to delete messages'
  1472. ' $PAGE
  1473. '
  1474. '  NAME    -- KillMsg
  1475. '
  1476. '  INPUTS  --     PARAMETER                    MEANING
  1477. '              MsgToKill                   MESSAGE NUMBER TO KILL
  1478. '              ActiveMessages              NUMBER ACTIVE MESSAGES
  1479. '
  1480. '  OUTPUTS --  NONE
  1481. '
  1482. '  PURPOSE --  To kill/delete old or unnecessary messages
  1483. '
  1484. * ------[ first line different ]------
  1485.      SUB KillMsg (MsgToKill,ActiveMessages,ZconfName$) STATIC     'Pe 05/29/91
  1486.      FIELD #1,128 AS ZMsgRec$
  1487.      WasQX = 1
  1488.      NumHeaders = 0
  1489. * REPLACING old line(s) by new
  1490. 3990 IF ZWasZ$ = "^READ^" OR ZWasZ$ = "^KILL^" THEN _
  1491.         CALL ChkMsgName (MsgFromCaller,MsgToCaller) : _
  1492.         IF (MsgFromCaller OR MsgToCaller) THEN _
  1493.            GOTO 4020 _
  1494.         ELSE IF NumHeaders > 1 THEN _
  1495.                 GOTO 4032 _
  1496.              ELSE ZMsgPswd = ZTrue : _
  1497.                   ZAttemptsAllowed = 0 : _
  1498. * ------[ first line different ]------
  1499.            Call GetRBBSString(289,RBBSString$) : _     'Pe 01/26/93
  1500.            ZOutTxt$ = RBBSString$ : _               'Pe 01/26/93 
  1501.                   GOTO 4031
  1502. * REPLACING old line(s) by new
  1503. * ------[ first line different ]------
  1504. 4656 Call GetRBBSString(290,RBBSString$)     'Pe 01/26/93
  1505.      ZOutTxt$ = RBBSString$                'Pe 01/26/93 
  1506.      ZTurboKey = -ZTurboKeyUser
  1507.      ZSubParm = 1
  1508.      CALL TGet
  1509.      IF ZWasQ = 0 OR ZSubParm = -1 THEN _
  1510.         EXIT SUB
  1511.      ZWasZ$ = ZUserIn$(1)
  1512. * REPLACING old line(s) by new
  1513. 4777 ZWasCM = 0
  1514.      CALL CheckTime(TimeChatStarted!,Elapsed!, 2)
  1515.      ZSecsPerSession! = ZSecsPerSession! + Elapsed!
  1516.      IF NOT ZLocalUser THEN _
  1517.         ZAutoLogoff! = TIMER + ZWaitBeforeDisconnect
  1518. * ------[ first line different ]------
  1519.     Call GetRBBSString(79,RBBSString$)     'Pe 01/16/93
  1520.      OutTxt$ = RBBSString$               'Pe 01/16/93 
  1521.      CALL QuickTPut (OutTxt$,2)
  1522.      END SUB
  1523. * REPLACING old line(s) by new
  1524. 5500 ' $SUBTITLE: 'BankTime - Allows User to Bank Session Time'
  1525. ' $PAGE
  1526. '  NAME    -- BankTime
  1527. '
  1528. '  INPUTS  -- PARAMETER             MEANING
  1529. '             ZBankTime          Time in bank can use
  1530. '
  1531. '  OUTPUTS -- ZBankTime
  1532. '
  1533. '  PURPOSE -- Allow Users to use Bank session time
  1534. '
  1535.      SUB BankTime STATIC
  1536. * ------[ first line different ]------
  1537.  If ZUserSecLevel < ZOptSec(28) Then Exit Sub   'Pe 08/30/92
  1538.      GOSUB 5507
  1539. * REPLACING old line(s) by new
  1540. 5501 CALL TimeRemain(MinsRemaining)
  1541. * ------[ first line different ]------
  1542.      Call GetRBBSString(291,RBBSString$)     'Pe 01/26/93
  1543.       ZOutTxt$ = STR$(MinsRemaining) + RBBSString$
  1544.      ZTurboKey = -ZTurboKeyUser
  1545.      CALL PopCmdStack
  1546.      IF ZSubParm = -1 THEN _
  1547.         EXIT SUB
  1548.      ZWasZ$ = LEFT$(ZUserIn$(ZAnsIndex),1)
  1549.      CALL AllCaps(ZWasZ$)
  1550.      ON INSTR("QDW?H",ZWasZ$) GOTO 5509,5505,5502,5508,5508
  1551.      GOTO 5501
  1552. * REPLACING old line(s) by new
  1553. 5503 IF SignTime = 1 THEN _
  1554.         ZOutTxt$ = "Withdraw" _
  1555. * ------[ first line different ]------
  1556.      ELSE ZOutTxt$ = "Deposit "
  1557.      Temp$ = ZOutTxt$ + " how many mins"
  1558.      CALL ChangeInt (ZFalse,Temp$,Temp,0,Maxtime)
  1559.      IF ZWasQ = 0 OR ZTestedIntValue = 0 THEN _
  1560.         GOTO 5501
  1561.      ZTestedIntValue = SignTime * ZTestedIntValue
  1562.      CALL ChkAddedTime (ZTestedIntValue)
  1563.      IF ZTestedIntValue = 0 THEN _
  1564.         GOTO 5501
  1565.    CALL UpdtCalr (Left$(Temp$,8) + STR$(ZTestedIntValue) + " Mins " ,2) ' Pe 02/05/93
  1566.      ZSecsPerSession! = ZSecsPerSession! + (ZTestedIntValue * 60)
  1567.      IF ZMaxPerDay = 0 THEN _                                        ' KG082101
  1568.         ZTimeCredits! = ZTimeCredits! + ZTestedIntValue * 60         ' KG082101
  1569.      ZElapsedTime = ZElapsedTime - ZTestedIntValue
  1570.      ZGlobalBankTime = ZGlobalBankTime - ZTestedIntValue
  1571.      ZBankTime = ZGlobalBankTime   'Pe 11/02/91
  1572.      GOSUB 5507
  1573.      GOTO 5501
  1574. * REPLACING old line(s) by new
  1575. 5505 SignTime = -1            ' deposit
  1576.      MaxTime = ZMaxBank - ZGlobalBankTime
  1577.      IF MaxTime <= 0 THEN _
  1578. * ------[ first line different ]------
  1579.     Call GetRBBSString(80,RBBSString$) : _     'Pe 01/16/93
  1580.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  1581.         CALL QuickTPut1 (OutTxt$ + STR$(ZMaxBank)) : _
  1582.         ZLastIndex = 0 : _
  1583.         GOTO 5501
  1584.      IF MaxTime > MinsRemaining THEN _
  1585.         MaxTime = MinsRemaining
  1586.      GOTO 5503
  1587. * REPLACING old line(s) by new
  1588. 5507 IF ZAnsIndex < ZLastIndex THEN _
  1589.         RETURN
  1590. * ------[ first line different ]------
  1591.     Call GetRBBSString(81,RBBSString$) : _     'Pe 01/16/93
  1592.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  1593.      ZOutTxt$ = OutTxt$ +" " + _
  1594.                  STR$(ZGlobalBankTime) + " Mins"
  1595.      CALL QuickTPut1(ZOutTxt$)
  1596.      RETURN
  1597. * REPLACING old line(s) by new
  1598. 5509 GOSUB 5507
  1599. * ------[ first line different ]------
  1600.      END SUB
  1601. * REPLACING old line(s) by new
  1602. 9600 ' $SUBTITLE: 'DefaultU - subroutine to update user defauts'
  1603. ' $PAGE
  1604. '
  1605. '  NAME    -- DefaultU
  1606. '
  1607. '  INPUTS  --     PARAMETER                    MEANING
  1608. * ------[ first line different ]------
  1609. '             ZFullScreenEditor     'Pe 09/02/91 AnsiEd Mod
  1610. '             ZBoldText$              Ansi bold (0 no, 1 yes)
  1611. '             ZCheckBulletLogon
  1612. '             ZExpertUser
  1613. '             ZWasGR
  1614. '             ZLastMsgRead
  1615. '             ZLineFeeds
  1616. '             ZNulls
  1617. '             ZPageLength
  1618. '             ZPromptBell
  1619. '             ZRegDate$
  1620. '             ZReqQuesAnswered
  1621. '             ZRightMargin
  1622. '             ZSkipFilesLogon
  1623. '             ZTimesLoggedOn
  1624. '             ZUpperCase
  1625. '             ZUserOption$
  1626. '             ZUserTextColor          Ansi of color (31-37)
  1627. '             ZUserXferDefault$
  1628. '
  1629. '  OUTPUTS--  USER.OPTONS$
  1630. '
  1631. '  PURPOSE --  To update the user's record with their options.
  1632. '  Meaning of graphics preference stored is as follows: where # is
  1633. '  value stored for the color.  E.g. if graphics perference for text
  1634. '  files is color, and preference for normal text is light yellow,
  1635. '  graphics preference stored is 38.  Colors are Red, Green, Yellow,
  1636. '  Blue, Purple, Cyan, and White.
  1637. '
  1638. '             normal                  bold
  1639. ' Graphics R  G  Y  B  P  C  W    R  G  Y  B  P  C  W
  1640. '   none  30 33 36 39 42 45 48 | 51 54 57 60 63 66 69
  1641. '   ansi  31 34 37 40 43 46 49 | 52 55 58 61 64 67 70
  1642. '  color  32 35 38 41 44 47 50 | 53 56 59 62 65 68 71
  1643. '
  1644.      SUB DefaultU STATIC
  1645.      ZWasA =    -ZPromptBell          -2 * ZExpertUser _
  1646.             -4 * ZNulls               -8 * ZUpperCase _
  1647.            -16 * ZLineFeeds          -32 * ZCheckBulletLogon _
  1648.            -64 * ZSkipFilesLogon    -128 * ZFullScreenEditor _
  1649.           -256 * ZReqQuesAnswered   -512 * ZMailWaiting _
  1650.          -1024 * (NOT ZHiLiteOff)  -2048 * ZTurboKeyUser _
  1651.          -4096 * ZFileWaiting      -8192 * ZAvailableForChat    'Rchat-Mpl
  1652.      WasX = 3*ZUserTextColor - 63 + 21*VAL(ZBoldText$) + ZWasGR
  1653.      IF WasX < 1 OR WasX > 255 THEN _
  1654.         WasX = 48
  1655.      LSET ZUserOption$ = _
  1656.         MKI$(ZTimesLoggedOn) + _
  1657.         MKI$(ZLastMsgRead) + _
  1658.         ZUserXferDefault$ + _
  1659.         CHR$(WasX) + _
  1660.         MKI$(ZRightMargin) + _
  1661.         MKI$(ZWasA) + _
  1662.         ZRegDate$ + _
  1663.         CHR$(ZPageLength) + _
  1664.         ZEchoer$
  1665.      END SUB
  1666. * REPLACING old line(s) by new
  1667. 9801 ' $SUBTITLE: 'WhosOn - subroutine to display who is on'
  1668. ' $PAGE
  1669. '
  1670. '  NAME    -- WhosOn
  1671. '
  1672. '  INPUTS  --     PARAMETER                    MEANING
  1673. '                NumNodes                   # of nodes to check
  1674. '                ZActiveMessageFile$        Current message file
  1675. '                ZOrigMsgFile$              Main msg file
  1676. '
  1677. '  OUTPUTS --  None
  1678. '
  1679. '  PURPOSE --  To display who is on each node.
  1680. '
  1681.      SUB WhosOn (NumNodes) STATIC
  1682. * ------[ first line different ]------
  1683.  
  1684. REDIM UserAlreadyOn$(ZMaxNodes)
  1685.  
  1686.      WasA1$ = ZActiveMessageFile$
  1687.      ZActiveMessageFile$ = ZOrigMsgFile$
  1688.      CALL OpenMsg
  1689.      FIELD 1, 128 AS ZMsgRec$
  1690.  
  1691. node = VAL(ZNodeId$)
  1692. UserAlreadyOn$(node) = Left$(ZActiveUserName$,26)
  1693.  
  1694.      FOR NodeIndex = 2 TO NumNodes + 1
  1695.         GET 1,NodeIndex
  1696.         ZOutTxt$ = ZFG1$ + "Node" + _
  1697.              STR$(NodeIndex - 1) + ZFG2$
  1698.         RecIndex = -VAL(MID$(ZMsgRec$,44,2))     ' KG032604
  1699.         IF RecIndex >= 0 THEN _
  1700.            RecIndex = -1
  1701.         WasAX$ = MID$(ZBaudRates$,(-5 * RecIndex ),5) + _
  1702.               " BPS: "
  1703.         IF MID$(ZMsgRec$,55,2) = "-1" AND NOT ZSysop THEN _
  1704.            ZWasY$ = "SYSOP" + SPACE$(21) _
  1705.         ELSE ZWasY$ = MID$(ZMsgRec$,1,26)
  1706.         WasAX$ = WasAX$ + ZFG3$ + ZWasY$
  1707. '* ------[ first line different ]------
  1708.         IF MID$(ZMsgRec$,40,2) <> "-1" THEN                          ' CHAT0805
  1709.            CALL SaveUserActivity(WhatTheyDoin$, NodeIndex, ZTrue)    ' CHAT0813
  1710.            IF WhatTheyDoin$ = "C" THEN                               ' CHAT0813
  1711.               WasAX$ = WasAX$ + ZFG4$ + "(In Chat System)"     ' CHAT0813
  1712.             ELSEIF WhatTheyDOin$ = "F" THEN                          ' CHAT0813
  1713.               WasAX$ = WasAX$ + ZFG4$ + "(In File System)"           ' CHAT0813
  1714.             ELSEIF WhatTheyDoin$ = "M" THEN                          ' CHAT0813
  1715.               WasAX$ = WasAX$ + ZFG4$ + "(In Message System)"        ' CHAT0813
  1716.             ELSE                                                     ' CHAT0813
  1717.               WasAX$ = WasAX$ + ZFG4$ + MID$(ZMsgRec$,93,22)         ' CHAT0813
  1718.            END IF                                                    ' CHAT0813
  1719.          ELSE                                                        ' CHAT0805
  1720.            WasAX$ = WasAX$ + ZFG4$ + "(In a Door)"                   ' CHAT0805
  1721.         END IF                                                       ' CHAT0805
  1722.  
  1723.         IF MID$(ZMsgRec$,57,1) = "A" THEN _
  1724.            ZOutTxt$ = ZOutTxt$ + "  Online at " + _
  1725.                 WasAX$ _
  1726.              ELSE ZOutTxt$ = ZOutTxt$ + _
  1727.                        " Offline at " + _
  1728.                        WasAX$
  1729. 'Test code.......
  1730. ' IF MID$(ZMsgRec$,57,1) = "A" THEN 
  1731. '  If UserAlreadyOn$(Node) = Mid$(ZMsgRec$,1,26) and node <> NodeIndex - 1 then 
  1732. '     ZSubParm = -8 
  1733. '      GOTO 9802 
  1734. '        END IF
  1735. '     ZOutTxt$ = ZOutTxt$ + "  Online at " + WasAX$ 
  1736. '      ELSE ZOutTxt$ = ZOutTxt$ + " Offline at " + WasAX$
  1737. '   END IF
  1738. 'End Test
  1739.  
  1740.  
  1741. '        IF MID$(ZMsgRec$,57,1) = "A" THEN _
  1742. '           ZOutTxt$ = ZOutTxt$ + "  Online at " + _
  1743. '                WasAX$ _
  1744. '        ELSE IF NOT ZSysop THEN _
  1745. '                ZOutTxt$ = ZOutTxt$ + _
  1746. '                     " Waiting for next caller" _
  1747. '             ELSE ZOutTxt$ = ZOutTxt$ + _
  1748. '                       " Offline at " + _
  1749. '                       WasAX$
  1750.  
  1751.         CALL QuickTPut1 (ZOutTxt$)
  1752.         CALL AskMore ("",ZTrue,ZTrue,ZAnsIndex,ZFalse)
  1753.         IF ZNo THEN _
  1754.            NodeIndex = NumNodes + 2
  1755.      NEXT
  1756. * INSERTING new line(s)
  1757. 9802     ZActiveMessageFile$ = WasA1$
  1758.      CALL QuickTPut (ZEmphasizeOff$,0)
  1759.      END SUB
  1760. * REPLACING old line(s) by new
  1761. 10410 ' $SUBTITLE: 'RecoverMsg - sub to recover deleted messages'
  1762. ' $PAGE
  1763. '
  1764. '  NAME    -- RecoverMsg
  1765. '
  1766. '  INPUTS  --     PARAMETER                    MEANING
  1767. '               MsgToRecover          MESSAGE NUMBER TO RECOVER
  1768. '               FirstMsgRecord        RECORD # FOR First MSG
  1769. '
  1770. '  OUTPUTS --  ActionFlag                 SET TO 0 IF ERROR
  1771. '                                         SET TO -1 IF No ERROR
  1772. '
  1773. '  PURPOSE --  To recover deleted messages.  Note that this is only
  1774. '              possible if you have not compressed your message file
  1775. '              using config.
  1776. '
  1777. * ------[ first line different ]------
  1778.       SUB RecoverMsg (MsgToRecover,FirstMsgRecord,ActionFlag,ZConfName$) STATIC 'Pe 06/09/91
  1779.       FIELD #1,128 AS ZMsgRec$
  1780.       MsgRec = FirstMsgRecord
  1781. * REPLACING old line(s) by new
  1782. 10604 GET 5,ZUserFileIndex
  1783. * ------[ first line different ]------
  1784. '      IF ZActiveUserFile$ = ZOrigUserFile$ THEN _
  1785.  '        ZUplds = ZGlobalUplds : _
  1786.  '        ZDnlds = ZGlobalDnlds : _
  1787.  '        ZDLToday! = ZGlobalDLToday! : _
  1788.  '        ZBytesToday! = ZGlobalBytesToday! : _
  1789.  '        ZDLBytes! = ZGlobalDLBytes! : _
  1790.  '        ZULBytes! = ZGlobalULBytes! : _
  1791.  '        ZBankTime = ZGlobalBankTime _
  1792.  '     ELSE ZBankTime = 0
  1793.       IF ZActiveUserFile$ = ZOrigUserFile$ THEN _
  1794.          ZUplds = ZGlobalUplds : _
  1795.          ZDnlds = ZGlobalDnlds : _
  1796.          ZDLToday! = ZGlobalDLToday! : _
  1797.          ZBytesToday! = ZGlobalBytesToday! : _
  1798.          ZDLBytes! = ZGlobalDLBytes! : _
  1799.          ZULBytes! = ZGlobalULBytes! : _
  1800.          ZBankTime = ZGlobalBankTime
  1801.       LSET ZBankTime$ = CHR$(ZBankTime)
  1802.       LSET ZLastDateTimeOn$ = ZWasY$
  1803.       LSET ZCityState$ = ZWasCI$
  1804.       IF UpdateDefaults THEN _
  1805.          CALL DefaultU
  1806.       IF ZListDir THEN _
  1807.          LSET ZListNewDate$ = CHR$(VAL(MID$(ZCurDate$,7,2))) + _
  1808.                               CHR$(VAL(MID$(ZCurDate$,1,2))) + _
  1809.                               CHR$(VAL(MID$(ZCurDate$,4,2)))
  1810. * REPLACING old line(s) by new
  1811. 10607 IF ZExitToDoors OR NOT LoggingOff THEN _
  1812. * ------[ first line different ]------
  1813.                            EXIT SUB
  1814. CALL QuickTPut1 (ZCrLF$ +ZFG1$ + STR$(MinsRemaining)+ ZFG2$ + _
  1815.                 " min left Today" +ZCrLF$ +" Banked Time.  " + ZFG1$+_
  1816.                   STR$(ZGlobalBankTime) + ZFG2$+" minutes.")
  1817. Call QuickTput1  (ZFG3$ +" "+ ZFirstName$ + ZFG2$ + ", Thanks for calling "+_
  1818.                   ZFG1$ +" " + ZOrigRBBSName$ +ZFG2$ +" please call again!" + _
  1819.                    ZColorReset$)
  1820.       CALL DelayTime (8 + ZBPS)
  1821.        Call MenuPlus (5)      ' Pe Menu174
  1822.       END SUB
  1823. * REPLACING old line(s) by new
  1824. 10935 ' $SUBTITLE: 'DosExit -- Setup to exit to DOS for ZSysop'
  1825. ' $PAGE
  1826. '  NAME    -- DosExit
  1827. '
  1828. '  INPUTS  -- PARAMETER             MEANING
  1829. '             ZComPort$
  1830. '             ZDoorsTermType
  1831. '             ZMultiLinkPresent
  1832. '             ZRBBSBat$
  1833. '             ZRedirectIOMethod
  1834. '             ZUseDeviceDriver$
  1835. '
  1836. '  OUTPUTS -- ZWasQ                    NUMBER OF LINES TO WRITE OUT TO
  1837. '                                      ZRCTTYBat$
  1838. '             ZUserIn$()               LINES TO WRITE OUT TO ZRCTTYBat$
  1839. '
  1840. '  PURPOSE -- Set up ZUserIn$() and ZWasQ in order to call "RBBSExit" and
  1841. '             exit to DOS for the remote RBBS-PC sysop
  1842. '
  1843.       SUB DosExit STATIC
  1844. * ------[ first line different ]------
  1845. * INSERTING new line(s)
  1846. 10940 Call GetRBBSString(292,RBBSString$)     'Pe 01/16/93
  1847.        ZOutTxt$ = RBBSString$               'Pe 01/16/93 
  1848.             ZTurboKey = -ZTurboKeyUser
  1849.             CALL TGet
  1850.             CALL AllCaps (ZUserIn$)
  1851.     IF ZYES THEN_
  1852.        GOTO 10955
  1853. '
  1854.       ZOutTxt$(1) = "ECHO OFF"
  1855.       IF ZUseDeviceDriver$ <> "" THEN _
  1856.          Port$ = ZUseDeviceDriver$ _
  1857.       ELSE Port$ = "COM" + RIGHT$(ZComPort$,1)
  1858.       IF ZRedirectIOMethod THEN _
  1859.          ZFF = 5 : _
  1860.          ZOutTxt$(2) = "CTTY " + _
  1861.                  Port$ : _
  1862.          ZOutTxt$(3) = ZDiskForDos$ + _
  1863.                  "COMMAND" : _
  1864.          ZOutTxt$(4) = "CTTY CON" : _
  1865.          ZOutTxt$(5) = ZRBBSBat$ _
  1866.       ELSE ZFF = 3 : _
  1867.            ZOutTxt$(2) = ZDiskForDos$ + _
  1868.                    "COMMAND >" + _
  1869.                    Port$ + _
  1870.                    " <" + _
  1871.                    Port$ : _
  1872.            ZOutTxt$(3) = ZRBBSBat$
  1873. * REPLACING old line(s) by new
  1874. 10950 CALL AMorPM
  1875. * ------[ first line different ]------
  1876.      CALL UpdtCalr ("Exited to DOS at " + ZTime$,2)
  1877.     Call GetRBBSString(82,RBBSString$)     'Pe 01/16/93
  1878.      OutTxt$ = RBBSString$               'Pe 01/16/93 
  1879.       CALL QuickTPut1 ("RBBS-PC " + ZVersionID$ + ZCrLF$ + OutTxt$)
  1880.       CALL RBBSExit (ZOutTxt$(),ZFF)
  1881.  
  1882. '
  1883. * INSERTING new line(s)
  1884. 10955  Call GetRBBSString(83,RBBSString$)     'Pe 01/16/93
  1885.         ZOutTxt$ = RBBSString$               'Pe 01/16/93 
  1886.             CALL TGet
  1887.             CALL AllCaps (ZUserIn$)
  1888. IF ZUserIn$ = "" or ZWasQ = 0 then_
  1889.    GOTO 10940
  1890. Call Findit(ZUserIn$)  'Pe 12/28/92
  1891.  If NOT ZOK then _     'Pe 12/28/92
  1892.     Call GetRBBSString(84,RBBSString$) : _     'Pe 01/16/93
  1893.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  1894.   Call QuickTput ( OutTxt$ + " " + ZUserIn$  ,2)
  1895.      GOTO 10940        'Pe 12/28/92
  1896.     ZWasZ$ = ZUserIn$
  1897.      CALL DoorExit (ZFalse)
  1898.       END SUB
  1899. * REPLACING old line(s) by new
  1900. * ------[ first line different ]------
  1901. 10985 CALL ReadParms (ZOutTxt$(),10,1)                   'Pe 01/30/93 ' DD011801/DOORCARRIERDROP
  1902.       IF ZErrCode > 0 THEN _
  1903.          IF ReqDoorsDef THEN _
  1904.             EXIT SUB _
  1905.          ELSE ExitTo$ = ExitTo$ + " " + ZNodeID$ : _
  1906.               GOTO 10989
  1907.       IF ExitTo$ <> ZOutTxt$(1) THEN _
  1908.          GOTO 10985
  1909.       CALL CheckInt (ZOutTxt$(2))
  1910.       IF ZErrCode > 0 THEN _
  1911.          ZErrCode = 0 : _
  1912.          GOTO 10985
  1913.       IF ZUserSecLevel < ZTestedIntValue THEN _
  1914.     Call GetRBBSString(85,RBBSString$) : _     'Pe 01/16/93
  1915.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  1916.          CALL QuickTPut1 (OutTxt$) : _
  1917.          EXIT SUB
  1918.       WasX$ = LEFT$(ZOutTxt$(5),INSTR(ZOutTxt$(5)+" "," ")-1)
  1919.       CALL FindIt (WasX$)
  1920.       IF NOT ZOK THEN _
  1921.          GOTO 10986
  1922.       ZFileName$ = ZOutTxt$(3)
  1923.       ExitMethod$ = ZOutTxt$(4)
  1924.       ExitTemplate$ = ZOutTxt$(5)
  1925.       ZDoorDisplay$ = ZOutTxt$(7)
  1926.       ZDoorTime$ = ZOutTxt$(8)             'Pe 021293
  1927.       ZDoorDropFile$ = ZOutTxt$(9)                                   ' DD121702/DOORS
  1928.       ZDoorCarrierDropOK$ = ZOutTxt$(10)                             ' DD011801/DOORCARRIERDROP
  1929.       CALL AskUsers
  1930.       CALL SmartText (ExitTemplate$,ZFalse,ZFalse,ZFalse)    'Pe 02/06/93
  1931.       CALL MetaGSR (ExitTemplate$,ZFalse)
  1932.       ExitTo$ = ExitTemplate$
  1933.       GOTO 10989
  1934. * REPLACING old line(s) by new
  1935. 10989 IF ZTransferFunction = 3 THEN _
  1936.          ZWasY$ = "Registration" _
  1937.       ELSE ZWasY$ = ZDooredTo$
  1938. * ------[ first line different ]------
  1939.       ZOutTxt$ = " Swapping " +ZOrigRBBSName$ + " out and " + _
  1940.                      ZWasY$ + _
  1941.                      " door in... "
  1942.       ZSubParm = 5
  1943.       CALL TPut
  1944.       CALL UpdtCalr (ZDooredTo$ + " door opened!",2)
  1945.       CALL DoorInfo
  1946.       IF ExitMethod$ = "S" THEN _
  1947.          CALL UpdateU (ZFalse) : _
  1948.          Call SaveProf (3) : _            'Pe 07/12/92
  1949.          CLOSE 4,5 : _
  1950.          CALL ShellExit (ExitTemplate$) : _
  1951.          ZPrevCaller$ = "" : _
  1952.          CALL SetCall : _
  1953.          CALL DoorReturn : _
  1954.          CALL BufFile (ZDoorDisplay$,WasX) : _
  1955.          ZExitToDoors = ZFalse _
  1956.       ELSE ZOutTxt$(1) = ZDiskForDos$ + _
  1957.                   "COMMAND /C " + _
  1958.                   ExitTo$ : _
  1959.            ZOutTxt$(2) = ZRBBSBat$ : _
  1960.            CALL RBBSExit (ZOutTxt$(),2)
  1961.        END SUB
  1962. * REPLACING old line(s) by new
  1963. 10991 ' $SUBTITLE: 'DoorInfo -- Write info for doors to file'
  1964.       SUB DoorInfo STATIC
  1965.       CLOSE 2
  1966.       OPEN "O",2,"DORINFO" + _
  1967.                  ZNodeFileID$ + _
  1968.                  ".DEF"
  1969.       PRINT #2,ZRBBSName$
  1970.       PRINT #2,ZSysopFirstName$
  1971.       PRINT #2,ZSysopLastName$
  1972.       IF ZLocalUser THEN _
  1973.          PRINT #2,"COM0" _
  1974.       ELSE PRINT #2,ZComPort$
  1975. * ------[ first line different ]------
  1976.       ZUserIn$ = MID$(ZBaudParity$, INSTR(ZBaudParity$, ","))        ' MB040401
  1977.       PRINT #2,ZTalkToModemAt$;" BAUD";ZUserIn$                      ' KG071101
  1978.       PRINT #2,ZNetworkType
  1979.       IF ZGlobalSysop THEN _
  1980.          PRINT #2,"SYSOP" : _
  1981.          PRINT #2,"" _
  1982.       ELSE PRINT #2,OrigFirstName$ : _        'Lk Alias fix
  1983.            PRINT #2,ZLastName$
  1984.       PRINT #2,ZCityState$
  1985.       PRINT #2,ZWasGR
  1986.       PRINT #2,ZUserSecLevel
  1987.       CALL TimeRemain (MinsRemaining)
  1988.       CALL CheckInt (ZDoorTime$)                        'Pe021293
  1989.       IF ZErrCode = 0 AND ZTestedIntValue > 0 THEN _
  1990.          IF MinsRemaining > ZTestedIntValue THEN _
  1991.             MinsRemaining = ZTestedIntValue
  1992. IF ZDoorTime$ = "" THEN _                            'Pe021293
  1993.  ZDoorTime$ = STR$(INT(MinsRemaining)): _           'Pe021293
  1994.    Call Trim(ZDoorTime$)                             'Pe021293
  1995.       PRINT #2,INT(MinsRemaining)
  1996.       PRINT #2,ZFossil
  1997.       CLOSE 2
  1998.  
  1999.       IF ZDoorDropFile$ = "R" OR ZDoorDropFile$ = "S" THEN _         ' DD012702/DOORS
  2000.          CALL DoorSys : _                                           ' DD121702/DOORS
  2001.           Exit Sub
  2002.  
  2003.       IF ZDoorDropFile$ = "P" THEN _                                 ' DD121702/DOORS
  2004.          CALL PCBoardSys  : _                                           ' DD121702/DOORS
  2005.           Exit Sub
  2006.  
  2007.       IF ZDoorDropFile$ = "W" THEN _                                 ' DD121702/DOORS
  2008.          CALL CallInfoBBS  : _                                           ' DD121702/DOORS
  2009.           Exit Sub
  2010.  
  2011.       END SUB
  2012. * REPLACING old line(s) by new
  2013. 10994 CLOSE 3
  2014.       ZExitToDoors = ZTrue
  2015.       IF NOT ZFossil THEN _
  2016.          OUT ZModemCntlReg,INP(ZModemCntlReg) OR 1
  2017. * ------[ first line different ]------
  2018. * REPLACING old line(s) by new
  2019. 12880 ZParseOff = ZTrue
  2020.       ZOutTxt$ = Ques$
  2021.       CALL PopCmdStack
  2022.       IF ZSubParm = -1 THEN _
  2023.          GOTO 12882
  2024.       IF ZWasQ = 0 THEN _
  2025.          GOTO 12880
  2026.       IF LEN(ZUserIn$(ZAnsIndex)) > MaxLen THEN _
  2027.          ZLastIndex = 0 : _
  2028. * ------[ first line different ]------
  2029.     Call GetRBBSString(75,RBBSString$) : _     'Pe 01/16/93
  2030.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  2031.          CALL QuickTPut1 (STR$(MaxLen) + OutTxt$) : _
  2032.          GOTO 12880_
  2033.       ELSE IF LEN(ZUserIn$(ZAnsIndex)) < MinLen THEN _
  2034.               ZLastIndex = 0 : _
  2035.     Call GetRBBSString(86,RBBSString$) : _     'Pe 01/16/93
  2036.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  2037.               CALL QuickTPut1 (STR$(MinLen) + OutTxt$) : _
  2038.               GOTO 12880
  2039.       Ans$ = ZUserIn$(ZAnsIndex)
  2040.       IF ZAnsIndex < ZLastIndex THEN _
  2041.          GOTO 12881
  2042.       ZOutTxt$ = ZUserIn$(ZAnsIndex) + _
  2043.            ", right ([Y],N)"
  2044.       ZTurboKey = -ZTurboKeyUser
  2045.       ZSubParm = 1
  2046.       CALL TGet
  2047.       IF ZSubParm = -1 THEN _
  2048.          GOTO 12882
  2049.       IF ZNo THEN _
  2050.        GOTO 12880
  2051. * REPLACING old line(s) by new
  2052. 20096 ' $SUBTITLE: 'CheckRatio - subroutine to print ul/dl ratio'
  2053. ' $PAGE
  2054. '
  2055. '  NAME    -- CheckRatio
  2056. '
  2057. '  INPUTS  --   PARAMETER                    MEANING
  2058. '               TellUser           TELL USER THEIR RATIO
  2059. '               ZDnlds             FILES DOWNLOADED
  2060. '               ZDLBytes!          BYTES DOWNLOADED
  2061. '               ZUplds             FILES UPLOADED
  2062. '               ZULBytes!          BYTES UPLOADED
  2063. '
  2064. '  OUTPUTS --   ZOK                 -1 if okay to download, 0 otherwise
  2065. '
  2066. '  PURPOSE -- To determine whether the users violated
  2067. '             their upload to download restriction
  2068. '
  2069.       SUB CheckRatio (TellUser) STATIC
  2070.       ZOK = ZTrue
  2071. * ------[ first line different ]------
  2072.  IF ZFreeDnld THEN _
  2073.        GOTO 20110
  2074. '
  2075. ' Detemine method of ratio checking.  Look ahead to amount downloaded
  2076. '
  2077.       IF ZByteMethod = 1 OR ZByteMethod = 3 THEN _
  2078.          Method$ = "Bytes" : _
  2079.          ULWork# = ZULBytes! : _
  2080.          DLWork# = ZDLBytes! + ZNumDnldBytes!
  2081.       IF ZByteMethod = 0 OR ZByteMethod = 2 THEN _
  2082.          Method$ = "Files" : _
  2083.          ULWork# = ZUplds : _
  2084.          DLWork# = ZDnlds + ZDownFiles
  2085.       IF ULWork# < ZInitialCredit# THEN _
  2086.          ULWork# = ZInitialCredit#
  2087.       IF ZByteMethod = 2 THEN _
  2088.          Today# = ZRatioRestrict# - ZDLToday! - ZDownFiles
  2089.       IF ZByteMethod = 3 THEN _
  2090.          Today# = ZRatioRestrict# - ZBytesToday! - ZNumDnldBytes!
  2091. '
  2092.       Ratio# = 0
  2093.       RatioSuffix$ = ":0"
  2094.       IF ULWork# > 0 THEN _
  2095.          Ratio# = (DLWork# / ULWork#) : _
  2096.          RatioSuffix$ = ":1"
  2097.       IF ZByteMethod > 1 THEN _
  2098.  ZOutTxt$ =  "Today's Downloaded Files: " + STR$(ZDLToday! + ZDownFiles)+ZCrLf$ + _
  2099.              "Number of Bytes Today  : " + STR$(ZBytesToday! + ZNumDnldBytes!) : _
  2100.          ZSubParm = 5 : _
  2101.          CALL TPut : _
  2102.          CALL SkipLine (1) : _
  2103.          GOTO 20100
  2104.       WasX$ = STR$(Ratio#)
  2105.       X = INSTR(WasX$,".")
  2106.       IF X > 0 THEN _
  2107.          WasX$ = LEFT$(WasX$,X+1)
  2108. ZOutTxt$ = ZFG1$ + Method$ + " Downloaded: " + ZFG2$ +STR$(DLWork#)+ZCrLf$+ _
  2109.            ZFG3$ + Method$ + " Uploaded  : " + ZFG2$ +STR$(ULWork#) + ZCrLf$
  2110. ZOutTxt$ = ZoutTxt$ +  ZFG4$ + "Todays Downloaded Files: " + ZFG1$ + _
  2111.           STR$(ZDLToday! + ZDownFiles) + ZCrLf$ +"Ratio  : " +ZFG3$ + _
  2112.                              WasX$ + RatioSuffix$ +ZEmphasizeOff$
  2113.          ZSubParm = 5
  2114.          CALL TPut        'Pe 02/16/90
  2115. '
  2116. '  CHECK TO SEE IF THE USER HAS VIOLATED THEIR UL/DL RESTRICTION
  2117. '
  2118. * REPLACING old line(s) by new
  2119. * ------[ first line different ]------
  2120. 20100   IF NOT ZEnforceRatios OR ZRatioRestrict# <= 0 THEN _
  2121.          GOTO 20110                                               'Pe 02/16/90
  2122.  IF NOT (ZRatioRestrict# > 0 AND TellUser) THEN _
  2123.          EXIT SUB
  2124.       IF ZByteMethod <= 1 THEN _
  2125.          GOTO 20105
  2126.       IF Today# < 0 THEN _
  2127.          ZOutTxt$ = "Sorry, Daily download limit of" + _
  2128.               STR$(ZRatioRestrict#) + " " + _
  2129.               Method$ + " Reached" : _
  2130.          ZOK = ZFalse : _
  2131.       CALL DelayTime (3) _  'Pe 02/03/90
  2132.       ELSE ZOutTxt$ = "Download balance:" + _
  2133.                 STR$(Today#) + _
  2134.                 " " + _
  2135.                 Method$ : _
  2136.            ZOK = ZTrue
  2137.       ZSubParm = 5
  2138.       CALL TPut
  2139.       CALL SkipLine(1)
  2140.       EXIT SUB
  2141. '
  2142. * REPLACING old line(s) by new
  2143. 20105 IF Ratio# > ZRatioRestrict# OR ULWork# = 0 THEN _
  2144.          ZOK = ZFalse : _
  2145. * ------[ first line different ]------
  2146.            ZOutTxt$ = "Sorry, DL/UL ratio of" + _
  2147.               STR$(ZRatioRestrict#) + _
  2148.               ":1 " + _
  2149.               Method$ + " exceeded" + CHR$(7) : _
  2150.          ZSubParm = 5 : _
  2151.          CALL TPut : _
  2152.          Call DelayTime (4) : _      'Pe 06/13/91
  2153.          ZOutTxt$ = "Minimum upload of" + _
  2154.               STR$(INT(((DLWork# - (ULWork# * ZRatioRestrict#)) _
  2155.               / ZRatioRestrict#) + 1)) + _
  2156.               + " " + Method$ + " required to download" _
  2157.       ELSE ZOutTxt$ = "Balance remaining before upload required:" + _
  2158.                 STR$(INT((ULWork# * ZRatioRestrict#)-DLWork#)) + _
  2159.                 " " + Method$
  2160.       ZSubParm = 5
  2161.       CALL TPut
  2162.      CALL SkipLine (1)
  2163. * REPLACING old line(s) by new
  2164. 20141 IF ZAnsIndex >= ZLastIndex THEN _
  2165.          IF LEN(ZDefaultExtension$) > 0 THEN _
  2166. * ------[ first line different ]------
  2167.     Call GetRBBSString(87,RBBSString$) : _     'Pe 01/16/93
  2168.      OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  2169.             CALL QuickTPut1 (OutTxt$ + "  "+ZDefaultExtension$)
  2170.       WasZ$ = "V"
  2171.       CALL AskItems ("V",WasZ$,ZFalse,"file",ZMarkedFiles$)
  2172.       IF ZSubParm = -1 OR ZWasQ = 0 THEN _
  2173.          EXIT SUB
  2174.       ZViolation$ = "View ARC"
  2175.       WasX = ZAnsIndex
  2176.       ZAnsIndex = WasX
  2177. * REPLACING old line(s) by new
  2178. 20142 IF ZAnsIndex > ZLastIndex THEN _
  2179. * ------[ first line different ]------
  2180.          IF ZLastIndex > 1 OR Drive$ <> "" THEN _                    ' KG091001
  2181.             EXIT SUB _
  2182.          ELSE GOTO 20141
  2183.       GOSUB 20143
  2184.       IF ZSubParm < 0 THEN _
  2185.          EXIT SUB
  2186.       ZAnsIndex = ZAnsIndex + 1
  2187.       GOTO 20142
  2188. * REPLACING old line(s) by new
  2189. 20143 ZWasZ$ = ZUserIn$(ZAnsIndex)
  2190.       CALL UnMarkItems (ZMarkedFiles$,ZAnsIndex, ZLastIndex,Temp,ZFalse)
  2191.       ZWasZ$ = ZUserIn$(ZAnsIndex)
  2192.       WasZ$ = ZWasZ$
  2193.       CALL AllCaps (ZWasZ$)
  2194.       CALL BreakFileName (ZWasZ$,Drive$,Prefix$,Ext$,ZFalse)
  2195.       IF Ext$ = "" THEN _
  2196.          Ext$ = ZDefaultExtension$ : _
  2197.          ZWasZ$ = ZWasZ$ + "." + ZDefaultExtension$
  2198. * ------[ first line different ]------
  2199.       ZLastExt$ = Ext$                                   'Pe 08/12/91
  2200.       ZFileNameHold$ = ZWasZ$
  2201.       ZFileName$ = ZWasZ$
  2202.       WasI = 1                                        'Pe 04/21/92
  2203.       CALL BadFile (Prefix$,BadFileNameIndex)
  2204.       ON BadFileNameIndex GOTO 20144,20146,20147
  2205. * REPLACING old line(s) by new
  2206. * ------[ first line different ]------
  2207. 20145  IF Drive$ <> "" THEN _                                         ' KG091001
  2208.          ZFileNameHold$ = Prefix$ + "." + Ext$ : _                   ' KG091001
  2209.          CALL FindFile (ZFileName$,ZOK) _                            ' KG091001
  2210.    Else CALL RotorsDir (ZFileName$,ZSubDir$(),ZSubDirCount + (NOT ZSysop),ZTrue,"V")
  2211.       IF ZOK THEN _
  2212.          GOTO 20148
  2213. If ZPersonalDnld Then _                                        'Pe 08/12/91
  2214. ZFileName$ = ZPersonalDrvPath$ + ZWasZ$ : _                    'Pe 08/12/91
  2215. CALL FindFile (ZFileName$,ZOK)                                 'Pe 08/12/91
  2216.  IF ZOK THEN _                                                 'Pe 08/12/91
  2217.     GOTO 20148                                                 'Pe 08/12/91
  2218.    ZWasZ$ = ZFileName$                                         'Pe 04/21/92
  2219.     CALL BreakFileName (ZFileName$,DR$,Prefix$,Ext$,ZFalse)    'Pe 04/21/92
  2220.     WasJ = INSTR(MID$(ZCompressedExt$+". ",WasI),".")          'Pe 04/21/92
  2221.      IF WasJ = 0 THEN _                                        'Pe 04/21/92
  2222.         GOTO 20146                                             'Pe 04/21/92
  2223.          Check$ = MID$(ZCompressedExt$,WasI,WasJ-1)            'Pe 04/21/92
  2224.        WasI = WasI + WasJ                                      'Pe 04/21/92
  2225.       ZFileName$ = Prefix$ + "." + Check$                      'Pe 04/21/92
  2226.       ZLastExt$ = Check$                                       'Pe 04/21/92
  2227.      ZFileNameHold$ = ZFileName$                               'Pe 04/21/92
  2228.    GOTO 20145                                                  'Pe 04/21/92
  2229. * REPLACING old line(s) by new
  2230. * ------[ first line different ]------
  2231. 20148  WasX$ = ZDiskForDos$ + "VU_FILE.BAT"   'Pe 12/29/92
  2232.       ' WasX$ = ZDiskForDos$ + "V" + Ext$ + ".BAT"   'Pe 09/25/91
  2233.       CALL FindIt (WasX$)
  2234.       IF NOT ZOK THEN _
  2235.          GOTO 20170                 'Pe 11/02/91
  2236. '
  2237. '  adds FileSec to ViewArc commands
  2238. '
  2239.       CALL OpenWork (2,ZFileSecFile$)
  2240.       IF ZErrCode = 53 THEN _
  2241.          CALL UpdtCalr ("Missing file " + ZFileSecFile$,2) : _
  2242.          ZErrCode = 0 : _
  2243.          GOTO 20165
  2244. * DELETING old line(s)
  2245. 20150
  2246. * INSERTING new line(s)
  2247. 20160 IF EOF(2) THEN _
  2248.          GOTO 20165
  2249.       CALL ReadParms (ZWorkAra$(),3,1)
  2250.       IF ZErrCode <> 0 THEN _
  2251.          CALL UpdtCalr (ZFileSecFile$ + " error in file!",2) : _
  2252.          GOTO 20165
  2253.      CALL WildFile (ZWorkAra$(1),ZWasZ$,ZOK)
  2254.       IF NOT ZOK THEN _
  2255.          GOTO 20160
  2256.         IF ZUserSecLevel < VAL(ZWorkAra$(2)) THEN _
  2257.          GOTO 20162
  2258.       FilePswd$ = ZWorkAra$(3)
  2259.       IF FilePswd$ = "" THEN _
  2260.          GOTO 20165
  2261.       CALL AraAllCaps (ZUserIn$(),1)
  2262.       IF ZUserIn$(1) = FilePswd$ THEN _
  2263.          GOTO 20165
  2264.     Call GetRBBSString(293,RBBSString$)     'Pe 01/16/93
  2265.      ZOutTxt$ = RBBSString$ + ZFileNameHold$              'Pe 01/16/93 
  2266.             ZSubParm = 1
  2267.          Call TGet
  2268.       IF ZSubParm < 0 THEN _
  2269.          Exit Sub
  2270.       IF ZWasQ = 0 THEN _
  2271.          RETURN
  2272.       CALL AllCaps (ZUserIn$(1))
  2273.       IF ZUserIn$(1) = FilePswd$ THEN _
  2274.          GOTO 20165
  2275. 20162 ZViolation$ = "View " + _
  2276.                    ZFileName$
  2277.     Call GetRBBSString(88,RBBSString$)     'Pe 01/16/93
  2278.      OutTxt$ = RBBSString$               'Pe 01/16/93 
  2279.       Call QuickTPut1 (OutTxt$)
  2280. 20163 CALL SecViolation
  2281.       IF ZDenyAccess THEN _
  2282.          ZFileSysParm = 4
  2283.       RETURN
  2284. '
  2285. '  End of changes
  2286. '
  2287. 20165 Call GetRBBSString(89,RBBSString$) : _     'Pe 01/16/93
  2288.        OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  2289.        CALL QuickTPut1 (ZFileNameHold$ + OutTxt$)       'Pe 09/25/91
  2290.       ZGSRAra$(3) = MID$(RIGHT$(ZComPort$,1)+"0",1-ZLocalUser, 1)
  2291.       CALL OpenWork (2,WasX$)                                     'Pe 11/02/91
  2292.       CALL ReadDir (2,1)
  2293.       IF EOF(2) THEN _
  2294.          ZWasZ$ = ZOutTxt$ : _
  2295.          ZGSRAra$(1) = ZFileName$ : _
  2296.          ZGSRAra$(2) = ZArcWork$ _
  2297.       ELSE ZWasZ$ = WasX$ + " " + ZFileName$ + _
  2298.             " " + ZArcWork$ + " " + ZGSRAra$(3) + " " + Ext$ + " " + ZNodeId$
  2299.       CALL ShellExit (ZWasZ$)
  2300.       CALL Findit (ZDiskForDOS$ + "NOVIEW."+ ZNodeId$)         'Pe 12/29/92
  2301.       IF ZOK Then _          'Pe 12/29/92
  2302.       Call KillWork(ZDiskForDOS$ + "NOVIEW."+ ZNodeId$) : _
  2303.        GOTO 20170                'Pe 12/29/92
  2304.       CALL BufFile (ZArcWork$,WasX)
  2305.       CALL ViewTxt        'located in Rbbssub1.bas
  2306.       RETURN
  2307. 20170     Call GetRBBSString(90,RBBSString$)     'Pe 01/16/93
  2308.      OutTxt$ = RBBSString$                'Pe 01/16/93 
  2309.        CALL QuickTPut1 (OutTxt$ + " "+Ext$+" files")    'Pe 11/02/91
  2310.          RETURN
  2311.       END SUB
  2312. * REPLACING old line(s) by new
  2313. 20245 SUB SetBPS (BaudTest!,BPS) STATIC
  2314. * ------[ first line different ]------
  2315.       IF BaudTest! = 2400 THEN _
  2316.          BPS = -4 _
  2317.       ELSE IF BaudTest! = 1200 OR BaudTest! = 1275 THEN _
  2318.          BPS = -3 _
  2319.       ELSE IF BaudTest! >= 7200 AND BaudTest! < 19200 THEN _
  2320.          GOTO 20246 _
  2321.       ELSE IF BaudTest! = 0 OR BaudTest! = 300 THEN _
  2322.          BaudTest! = 300 : _
  2323.          BPS = -1 _
  2324.       ELSE IF BaudTest! = 19200 THEN _
  2325.          BPS = -11 _
  2326.       ELSE IF BaudTest! = 38400 THEN _
  2327.          BPS = -12 _
  2328.       ELSE IF BaudTest! = 4800 THEN _
  2329.          BPS = -5 _
  2330.       ELSE BPS = 0
  2331.       EXIT SUB
  2332. * REPLACING old line(s) by new
  2333. 20246 IF BaudTest! = 14400 THEN _
  2334.          BPS = -9 _
  2335.       ELSE IF BaudTest! = 16800 THEN _
  2336.          BPS = -10 _
  2337.       ELSE IF BaudTest! = 7200 THEN _
  2338.          BPS = -6 _
  2339.       ELSE IF BaudTest! = 12000 THEN _
  2340.          BPS = -8 _
  2341.       ELSE BPS = -7       ' 9600
  2342.       END SUB
  2343. * ------[ first line different ]------
  2344. '
  2345. * INSERTING new line(s)
  2346. 20340 ' $SUBTITLE: 'QuickPeek - Easy find user to send message to'   ' DD062502
  2347. ' $PAGE                                                              ' DD062502                                                                     ' DD062502
  2348. '  NAME    -- QuickPeek - A Dan & Howard Mod - Dan Drinnon 1992      ' DD062502
  2349. '                                                                    ' DD062502
  2350. '  INPUTS  --     PARAMETER                    MEANING               ' DD062502
  2351. '                                                                    ' DD062502
  2352. '  OUTPUTS --     ZUserIn$                Search String User Input   ' DD062502
  2353. '                 MsgTo$                  Who Message is To          ' DD062502
  2354. '  PURPOSE -- Save User keystrokes when looking for message addressee' DD062502
  2355. '                                                                    ' DD062502
  2356.       SUB QuickPeek (ZUserIn$,MsgTo$,Found)  Static                  ' DD070801
  2357.       IF Found = ZTrue THEN EXIT SUB                                 ' DD070801
  2358.       Found = ZFalse
  2359.       ZLastDateTimeOnSave$ = ZLastDateTimeOn$                        ' DD062502
  2360.       HoldRecordPosition$ = ZUserRecord$                             ' DD081401
  2361.       UserInName$ = ZUserIn$                                         ' DD062502
  2362.       WhichUser = 1 
  2363.       Call GetRBBSString(91,RBBSString$)     'Pe 01/16/93
  2364.       OutTxt$ = RBBSString$                'Pe 01/16/93                                                  ' DD062502
  2365.       CALL QuickTPut (OutTxt$ + " " + MsgTo$,0)                   ' DD081501
  2366.       NumDots = 0                                                    ' DD081401
  2367.       CALL OpenUser (ZHighestUserRecord)                             ' DD062502
  2368.       WHILE NOT EOF(5)                                               ' DD062502
  2369.          GET #5, WhichUser                                           ' DD062502
  2370.          TempMsgTo$ = ZUserName$                                     ' DD062502
  2371.          CALL TRIM (TempMsgTo$)                                      ' DD062502
  2372.          IF UserInName$ = TempMsgTo$ THEN EXIT SUB                   ' DD062502
  2373.          IF INSTR(TempMsgTo$,UserInName$) > 0 THEN                   ' DD062502
  2374.          IF TempMsgTo$ = ZSecretName$ THEN _                         ' DD080301
  2375.             GOTO 20350                                               ' DD080301
  2376.          ZSubParm = 1                                                ' DD062502
  2377.          ZOutTxt$ = ZCRLf$ + "Send to: " + TempMsgTo$ + _            ' DD081401
  2378.                     " (Y)es,[N])o,A)bort)"                           ' DD081401
  2379.          ZTurboKey = -ZTurboKeyUser                                  ' DD062502
  2380.          CALL PopCmdStack                                            ' DD062502
  2381.          IF ZSubParm = -1 THEN _                                     ' DD062502
  2382.             LSET ZUserRecord$ = HoldRecordPosition$ : _              ' DD081401
  2383.             EXIT SUB                                                 ' DD062502
  2384.          ZWasZ$ = ZUserIn$(1)                                        ' DD062502
  2385.          CALL AllCaps (ZWasZ$)                                       ' DD062502
  2386.          IF ZWasZ$ = "A" THEN _                                      ' DD062502
  2387.             MsgTo$ = "" : _                                          ' DD062502
  2388.             Found = ZTrue : _                                        ' DD070801
  2389.             LSET ZUserRecord$ = HoldRecordPosition$ : _              ' DD081401
  2390.             EXIT SUB                                                 ' DD062502
  2391.          IF ZWasZ$ = "Y" THEN                                        ' DD062502
  2392.             MsgTo$ = TempMsgTo$                                      ' DD062502
  2393.             ZUserIn$ = TempMsgTo$                                    ' DD062502
  2394.             Found = ZTrue                                            ' DD070801
  2395.             LSET ZUserRecord$ = HoldRecordPosition$                  ' DD081401
  2396.             ZLastDateTimeOn$ = ZLastDateTimeOnSave$                  ' DD062502
  2397.             EXIT SUB                                                 ' DD062502
  2398.          ELSE                                                        ' DD062502
  2399.             WhichUser=WhichUser+1 : _                                ' DD081401
  2400.             NumDots = 0 : _                                          ' DD081401
  2401.            Call GetRBBSString(91,RBBSString$) : _     'Pe 01/16/93
  2402.              OutTxt$ = RBBSString$ : _               'Pe 01/16/93 
  2403.             CALL QuickTPut (OutTxt$ + " " + ZUserIn$,0)           ' DD081401
  2404.          END IF                                                      ' DD062502
  2405.          ELSE                                                        ' DD062502
  2406. 20350       WhichUser=WhichUser+1                                    ' DD080301
  2407.          END IF                                                      ' DD062502
  2408.         CALL MarkTimeB (NumDots)                                     ' DD012602
  2409.       WEND                                                           ' DD062502
  2410.       CALL SkipLine (1)                                              ' DD081401
  2411.       Found = ZFalse                                                 ' DD070801
  2412.       LSET ZUserRecord$ = HoldRecordPosition$                        ' DD081401
  2413.       ZLastDateTimeOn$ = ZLastDateTimeOnSave$                        ' DD062502
  2414.       END SUB                                                        ' DD062502
  2415.